【发布时间】:2021-09-01 18:04:58
【问题描述】:
我在 PySpark 中有一个列,其中包含存储为字符串的类似字典/地图的值。
示例值:
'{1:'Hello', 2:'Hi', 3:'Hola'}'
'{1:'Dogs', 2:'Dogs, Cats, and Fish', 3:'Fish & Turtles'}'
'{1:'Pizza'}'
我想将这些字符串转换为数组或映射,因此我可以在它们上使用 .explode() 函数为每个 dict 键项对创建一行。我会在每个逗号上使用.split(),但由于某些值中有逗号,所以这不起作用。
我正在使用存储在 udf 中的 ast.literal_eval() 函数,但是当我在感兴趣的列上将其作为 udf 运行时,它仍然返回一个字符串而不是 MapType 对象。对解决此问题的最佳方法有何想法?
【问题讨论】:
标签: python apache-spark pyspark user-defined-functions