栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Pyspark:将具有嵌套结构的数组转换为字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pyspark:将具有嵌套结构的数组转换为字符串

我创建了一个样本JSON数据集来匹配该模式:

{"ClientNum":"abc123","Filters":[{"Op":"foo","Type":"bar","Val":"baz"}]}select(s.col("ClientNum"),s.col("Filters").cast(StringType)).show(false)+---------+------------------------------------------------------------------+|ClientNum|Filters    |+---------+------------------------------------------------------------------+|abc123   |org.apache.spark.sql.catalyst.expressions.UnsafeArrayData@60fca57e|+---------+------------------------------------------------------------------+

使用explode()函数可以最佳化解决您的问题,该函数可以展平数组,然后使用星号扩展表示法:

s.selectExpr("explode(Filters) AS structCol").selectExpr("structCol.*").show()+---+----+---+| Op|Type|Val|+---+----+---+|foo| bar|baz|+---+----+---+

使其成为由逗号分隔的单列字符串:

s.selectExpr("explode(Filters) AS structCol").select(F.expr("concat_ws(',', structCol.*)").alias("single_col")).show()+-----------+| single_col|+-----------+|foo,bar,baz|+-----------+


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号