【问题标题】:How to de-serialize the spark data frame into another data frame [duplicate]如何将火花数据帧反序列化为另一个数据帧[重复]
【发布时间】:2020-02-20 08:29:37
【问题描述】:

我正在尝试将 spark 数据帧反序列化为另一个数据帧,如下所示。

现有数据框数据:

现有数据框架构:

预期的数据框:

谁能帮我解决这个问题?

【问题讨论】:

标签: python apache-spark pyspark apache-spark-sql azure-databricks


【解决方案1】:

您可以为此使用explode 函数。

from pyspark.sql.functions import explode 
df.withColumn("ns2:fileName", explode(df.ns2:fileName))

编辑

df.withColumn("result", explode(zip($"ns2:fileName", $"ns2:alias"))).select(
   $"result._1".alias("ns2:fileName"), $"result._2".alias("ns2:alias"))

可能duplicate

【讨论】:

  • 我试过了,但它抛出错误 NameError: name 'explode' is not defined
  • 我编辑了我的问题。但请检查重复的问题以获取更多信息。
  • 感谢您的建议,但是当我尝试仅分解一列时,我能够做到,并且我可以正确查看第一列的数据,但第二列未分解并尝试了以下代码 `` ` project_processed_df1 = project_raw_df.withColumn("ProjectId", explode(project_raw_df.ProjectId)).withColumn("ProjectDesc", explode(project_raw_df.ProjectDesc)) ``` 上面的代码分解了两个列,但它生成了多对多关系和制作错误的数据。有什么想法吗?
  • 您可以压缩两个数组列并分解压缩结果。我编辑了我的答案
猜你喜欢
  • 2015-12-16
  • 2020-11-10
  • 1970-01-01
  • 2021-07-08
  • 2023-03-05
  • 2018-11-08
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多