records = df.rdd.map(lambda row: row.asDict()).collect()
1.为了插入可变列的记录,必须将数据作为键值对发送
output_records=[]
for record in records:
values = record["Values"]
words = [value for value in values if len(value)>0]
for i, word in enumerate(words):
column_name, column_values = f"col_{i+1}", word
if record.get(column_name, None) is None:
record[column_name] = word
del record["Values"]
output_records.append(record)
2条答案
按热度按时间z31licg01#
根据您的输入,我认为这是您的DataFrame:
1.将
values
列中所有不需要的字符替换为|
1.现在使用指定的分隔符
|
拆分列值1.将记录提取为数组格式
1.为了插入可变列的记录,必须将数据作为键值对发送
output_records
的外观如下所示:1.现在使用
output_records
创建一个Spark数据框输出:
cig3rfwq2#
以下是我的两分钱:
检查下面的示例输出: