【发布时间】:2020-08-31 14:29:57
【问题描述】:
我正在尝试使用 pyspark 对数据进行一些操作,但我遇到了一个似乎无法解决的问题。基本上,我有 2 列包含日期字符串
field1 (string): date1 date2 date3 date4 date5
field2 (string): 0.0 1.0 2.0 3.0 4.0
每个值都相互关联(因此 date1 与 field2 中的第一个值相关,date2 与 field2 中的第二个值相关,等等。
我想要实现的是将数据框转换为如下行:
field1 field2
date1 0.0
date2 1.0
date3 2.0
date4 3.0
date5 4.0
我试过了:
df.split(field1, ' ')
df.explode(field1)
df.split(field2, ' ')
df.explode(field2)
但这会产生一个乘法:
field1 field2
date1 0.0
date1 1.0
date1 2.0
date1 3.0
date1 4.0
date2 0.0
date2 1.0
date2 2.0
date2 3.0
date2 4.0
etc..
所以我认为我应该拆分字符串然后做映射
df.split(field1, ' ')
df.split(field2, ' ')
df.create_map(field1,field2).alias(mapped_val)
df.explode(mapped_val)
但是,这不起作用,因为我在create_map 上收到错误:
TypeError: Unhasable type: list
我不确定如何让它工作,我如何将 split() 输出转换为与 create_map 一起工作的东西?
【问题讨论】:
标签: python python-3.x apache-spark pyspark