使用 pyspark 处理结构数据类型

Posted

技术标签:

【中文标题】使用 pyspark 处理结构数据类型【英文标题】:Working with struct data type using pysprak 【发布时间】:2020-05-29 05:54:40 【问题描述】:

我打算在 pyspark 中处理 struct 数据类型,它说明了 dynamodb 中的映射数据类型。由于我计划在具有地图属性的 dynamodb 表中执行转换,因此我想使用 pyspark 实现相同的目的。 在这种情况下,我想处理健康属性。


  "file_name": "employeesalarydata",
  "folder_name": "doc_consumption_employeesalarydata",
  "Health": 
    "New version - Veracity unavailable": "A new dataset is available but IDQ rules are not generated yet"
  ,
  "last_modified_date": "2020-05-13T10:10:37.519Z",
  "resource_id": "6df1e646-a16d-11ea-a60e-d43b04339964"

【问题讨论】:

欢迎来到 SO!很好,但无法理解您在哪里需要帮助或者您正在寻找建议? 我想对 heath 属性中的字段执行 spark.sql 操作,我需要示例代码供参考。 好!你能用你想要执行的一些示例操作来更新你的问题吗?例如,给两个示例记录并询问你想要做的事情,如果你遇到错误,请在此处发布 【参考方案1】:

我认为https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.functions.get_json_object 应该可以帮助您获取对象。

例子:

import pyspark.sql.functions as f

spark.table('schema.table')\
.select(f.get_json_object('column_name', '$.Health').alias('health'))\
.show()

【讨论】:

以上是关于使用 pyspark 处理结构数据类型的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 中处理大数字的数据类型

使用 PySpark 将字符串处理为 RDS 中的日期数据类型列

在 pyspark 中转换或处理日期数据类型的最佳方法是啥

在 Pyspark/Hive 中处理不断变化的数据类型

有没有办法在 pyspark 中获取列数据类型?

具有多种数据类型的 Pyspark SQL 数据帧映射