将数组 <string> 转换为字符串 pyspark 数据帧
Convert array<string> into string pyspark dataframe
我有一个 pyspark 数据框,其中一些列包含字符串数组(并且一列包含嵌套数组)。结果,我无法将数据框写入 csv。
这是我正在处理的数据框示例 -
+-------+--------------------+---------+
|ID | emailed| clicked
+-------+--------------------+---------+
|9000316|[KBR, NRT, AOR] |[[AOR]]
|9000854|[KBR, NRT, LAX] | Null
|9001996|[KBR, JFK] |[[JFK]]
+-------+--------------------+---------+
我想得到以下结构,保存为csv。
+-------+--------------------+---------+
|ID | emailed| clicked
+-------+--------------------+---------+
|9000316|KBR, NRT, AOR | AOR
|9000854|KBR, NRT, LAX | Null
|9001996|KBR, JFK | JFK
+-------+--------------------+---------+
我是 pyspark 的新手。非常感谢您的帮助。谢谢!
你可以这样试试吗。您将必须导入模块
import pyspark.sql.functions.*
df.select(concat_ws(',', split(df.emailed)).alias('string_form')).collect()
如果有帮助请告诉我。
-----更新----
link中解释的代码,我修改了一下。
from pyspark.sql.functions import *
from pyspark.sql.types import *
def getter(column):
col_new=''
for i,col in enumerate(column):
if i==0:
col_new=col
else:
col_new=col_new+','+col
return col_new
getterUDF = udf(getter, StringType())
df.select(getterUDF(Ur_Array_Column))
你也可以试试这个。
我有一个 pyspark 数据框,其中一些列包含字符串数组(并且一列包含嵌套数组)。结果,我无法将数据框写入 csv。
这是我正在处理的数据框示例 -
+-------+--------------------+---------+
|ID | emailed| clicked
+-------+--------------------+---------+
|9000316|[KBR, NRT, AOR] |[[AOR]]
|9000854|[KBR, NRT, LAX] | Null
|9001996|[KBR, JFK] |[[JFK]]
+-------+--------------------+---------+
我想得到以下结构,保存为csv。
+-------+--------------------+---------+
|ID | emailed| clicked
+-------+--------------------+---------+
|9000316|KBR, NRT, AOR | AOR
|9000854|KBR, NRT, LAX | Null
|9001996|KBR, JFK | JFK
+-------+--------------------+---------+
我是 pyspark 的新手。非常感谢您的帮助。谢谢!
你可以这样试试吗。您将必须导入模块
import pyspark.sql.functions.*
df.select(concat_ws(',', split(df.emailed)).alias('string_form')).collect()
如果有帮助请告诉我。
-----更新----
link中解释的代码,我修改了一下。
from pyspark.sql.functions import *
from pyspark.sql.types import *
def getter(column):
col_new=''
for i,col in enumerate(column):
if i==0:
col_new=col
else:
col_new=col_new+','+col
return col_new
getterUDF = udf(getter, StringType())
df.select(getterUDF(Ur_Array_Column))
你也可以试试这个。