簡體   English   中英

使用分區上的Spark DataFrame withColumn

[英]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,有什么方法可以實現相同目的?

請注意,我要避免以下開銷:

  • 將數據幀轉換為RDD,反之亦然。
  • 通過直接在數據幀上調用mapPartitions來關聯編碼器。

請注意,我要避免以下開銷:

  • ...
  • 通過直接在數據幀上調用mapPartitions來關聯編碼器。

這實際上使它成為不可能。 任何不使用SQL DSL的操作都需要解碼為外部類型,然后再編碼回內部類型。 對於原始值,如果使用二進制編碼器,則這是低成本的操作,但仍需要Encoder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM