【发布时间】:2018-10-25 16:47:05
【问题描述】:
我有一个文件(csv),当在 spark 数据帧中读取时,它的打印模式具有以下值
-- list_values: string (nullable = true)
list_values 列中的值类似于:
[[[167, 109, 80, ...]]]
是否可以将其转换为数组类型而不是字符串?
我尝试拆分它并使用在线提供的代码来解决类似问题:
df_1 = df.select('list_values', split(col("list_values"), ",\s*").alias("list_values"))
但是如果我运行上面的代码,我得到的数组会跳过原始数组中的很多值,即
以上代码的输出是:
[, 109, 80, 69, 5...
与原始数组不同,即(缺少 167)
[[[167, 109, 80, ...]]]
由于我是 spark 新手,所以我不太了解它是如何完成的(对于 python,我本可以完成 ast.literal_eval 但 spark 没有这方面的规定。
所以我再重复一遍这个问题:
如何将存储为字符串的数组转换/转换为array,即
'[]' to [] conversion
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql