大資料工程師(ETL)面試系列(1)
阿新 • • 發佈:2019-02-03
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唯一
例2
A表的記錄在C表中有缺失但C表記錄唯一:
例3
A表的記錄在D表中全都有但D表id不唯一:
所以正解應該是大於等於A表的條數