1. 程式人生 > >大資料工程師(ETL)面試系列(1)

大資料工程師(ETL)面試系列(1)

1. 你覺得Spark和Hadoop的區別是什麼,請簡要說一說?

:Hadoop適合離線分析,是批處理;Spark適合實時分析,是近實時流,微批處理。

2. 你覺得Python和Java在使用起來,有什麼區別?

:其實自己在平時使用的時候,並沒有過度割裂開這兩種,因為畢竟自己是結果導向所以無論Python的縮排格式還是Java的要加逗號,最後可以實現我的需求就可以了。
:如今,再來審視這個問題,會發現其實在使用過程中,Python,Java確實有一些需要你拐個彎注意下的,比如【Python】list的remove函式和【Java】list的remove方法,同名異能。以及Python一些輪子如何用Java去實現也是要注意的。

3. 給你兩張表,表A和表B,其中表A有3條資料,表B有5條資料,問:表A left join 表B後有幾條?

:小於等於A表條數,也就是小於等於3條
:現在看來,當時陷入了工作中帶來的一個誤區,就是面試官可沒說join的欄位是主鍵,它可以不唯一哈,不唯一就會導致大於3條,因為有重複,而B表記錄不足的地方均為NULL,所以可能小於嗎?不信客官你看:
例1
A表的記錄數在B表中全都有且B表id唯一
A表資料

B表資料

A left join B

例2
A表的記錄在C表中有缺失但C表記錄唯一

A表資料

C表資料

A left join C

例3
A表的記錄在D表中全都有但D表id不唯一

A表資料

D表資料

A left join D

所以正解應該是大於等於A表的條數