[英]Spark dataframe withColumn on partitions
數據框中的列“ colA”包含整數值:
+-----+
| colA|
+-----+
| 1|
| 2|
| 1|
| 3|
+-----+
這些整數值可以通過Redis字典映射到字符串:
+----+------+
| key| value|
+----+------+
| 1| a|
| 2| b|
| 3| c|
+----+------+
我需要創建一個新列“ colB”,其中將包含“ colA”到字符串值的映射,如下所示:
+-----+-----+
| colA| colB|
+-----+-----+
| 1| a|
| 2| b|
| 1| a|
| 3| c|
+-----+-----+
我的目標是向Redis發出批處理請求,以避免每行單個Redis請求的延遲。
在Spark Core API(即RDD)中,我可以通過使用mapPartitions函數來實現。 通過使用Spark SQL API,有什么方法可以實現相同目的?
請注意,我要避免以下開銷:
請注意,我要避免以下開銷:
- ...
- 通過直接在數據幀上調用mapPartitions來關聯編碼器。
這實際上使它成為不可能。 任何不使用SQL DSL的操作都需要解碼為外部類型,然后再編碼回內部類型。 對於原始值,如果使用二進制編碼器,則這是低成本的操作,但仍需要Encoder
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.