Apache Spark 将字符串数据转换为结构数据

yc0p9oo0  于 2022-11-25  发布在  Apache
关注(0)|答案(1)|浏览(99)

我有一个字符串的形式:我需要得到一个['abc','def']形式的数组
我使用以下代码:schema = StructType([StructField('text_str', StringType(), True)]) dsdf.withColumn('text', from_json(col('text'), schema)).show(truncate=False)
它返回['abc']。如何获得我真正需要的内容?

yeotifhr

yeotifhr1#

dsdf.select( \
 expr( \
   "transform( split(language,','), x -> from_json(x,'text String'))" \
 ).alias("text")\
).show()

我使用expr生成一个sql字符串来运行transform,这对spark的版本具有最广泛的兼容性,但是transform可以在最新版本的pyspark中本地运行。
split将生成一个数组,该数组基于您可以通过','拆分它们的假设
transform将对数组中的每一项进行操作
如您所知,from_json解析json。

相关问题