簡體   English   中英

如何在pyspark中將StringType列與ArrayType列的每個元素連接起來

[英]How to concat a StringType column with every element of an ArrayType column in pyspark

我在 pyspark 數據框中有一個 StringType() 列和一個 ArrayType(StringType()) 列。 我想將 StringType() 列與 ArrayType(StringType()) 列的每個元素連接起來。
例子:

+-----+---------------------+------------------------------+
|col1 |col2                 |col3                          |
+-----+---------------------+------------------------------+
|'AQQ'|['ABC', 'DEF']       |['AQQABC', 'AQQDEF']          |
|'APP'|['ABC', 'DEF', 'GHI']|['APPABC', 'APPDEF', 'APPGHI']|
+-----+---------------------+------------------------------+

謝謝 :)

對於 spark 2.4+,使用轉換

from pyspark.sql.functions import expr 

df = spark.createDataFrame([('AQQ', ['ABC', 'DEF']),('APP', ['ABC', 'DEF', 'GHI'])], ['col1', 'col2'])

df.withColumn('col3', expr("transform(col2, x -> concat(col1, x))")).show(truncate=False)                            
+----+---------------+------------------------+
|col1|col2           |col3                    |
+----+---------------+------------------------+
|AQQ |[ABC, DEF]     |[AQQABC, AQQDEF]        |
|APP |[ABC, DEF, GHI]|[APPABC, APPDEF, APPGHI]|
+----+---------------+------------------------+

暫無
暫無

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

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