我有一張hbase數據庫,裏面有10億條記錄。我想根據一定的條件(按日期)過濾記錄。過濾條件如何在火花數據框中工作?
例如:
Dataframe.filter(col(date) === todayDate)
篩選後會從表中的所有記錄都將被加載到內存或應用我會得到過濾記錄?
我有一張hbase數據庫,裏面有10億條記錄。我想根據一定的條件(按日期)過濾記錄。過濾條件如何在火花數據框中工作?
例如:
Dataframe.filter(col(date) === todayDate)
篩選後會從表中的所有記錄都將被加載到內存或應用我會得到過濾記錄?
如果你的用例只是從存儲中讀取,過濾並保存在某個地方,如果你有一些方法直接讀取數據到RDD(記錄的延遲加載),那麼過濾器將流水線讀取和寫入。這意味着過濾器操作不會等待讀取整個數據[簡而言之,該過濾器是一種變換而不是動作]。如果您在過濾器之前有任何操作,則只有在從商店讀取完整數據後纔會應用過濾器。
一方面,假設它取決於您使用的數據源。有時數據源不支持所有下推式謂詞。另一方面,你的問題是非常廣泛的回答考慮所有的火花可以連接到的數據源,例如mongo,elasticsearch,hbase,cassandra,csv等。 – eliasah
我想通過使用spark hbase連接器https ://github.com/hortonworks-spark/shc –