标签: pyspark-schema

如何在 PySpark 中创建具有结构列的数据框而不指定架构?

我正在学习 PySpark,能够快速创建示例数据帧来尝试 PySpark API 的功能很方便。

以下代码(其中spark是 Spark 会话):

import pyspark.sql.types as T
df = [{'id': 1, 'data': {'x': 'mplah', 'y': [10,20,30]}},
      {'id': 2, 'data': {'x': 'mplah2', 'y': [100,200,300]}},
]
df = spark.createDataFrame(df)
df.printSchema()
Run Code Online (Sandbox Code Playgroud)

给出一个映射(并且不能正确解释数组):

root
 |-- data: map (nullable = true)
 |    |-- key: string
 |    |-- value: string (valueContainsNull = true)
 |-- id: long (nullable = true)
Run Code Online (Sandbox Code Playgroud)

我需要一个结构。如果我给出一个模式,我可以强制一个结构:

import pyspark.sql.types as T
df = [{'id': 1, 'data': {'x': 'mplah', 'y': [10,20,30]}},
      {'id': 2, 'data': {'x': 'mplah2', 'y': …
Run Code Online (Sandbox Code Playgroud)

struct apache-spark apache-spark-sql pyspark pyspark-schema

3
推荐指数
1
解决办法
5569
查看次数

如何在 PySpark 中为嵌套 JSON 列创建架构?

我有一个包含多个列的镶木地板文件,其中有 2 列是 JSON/Struct,但它们的类型是字符串。可以存在任意数量的 array_elements。

\n
{\n  "addressline": [\n\n    {\n      "array_element": "F748DK\xe2\x80\x998U1P9\xe2\x80\x992ZLKXE"\n    },\n    {\n      "array_element": "\xe2\x80\x99O\xe2\x80\x99P0BQ04M-"\n    },\n    {\n      "array_element": "\xe2\x80\x99fvrvrWEM-"\n    }\n\n  ],\n  "telephone": [\n    {\n      "array_element": {\n        "locationtype": "8.PLT",\n        "countrycode": null,\n        "phonenumber": "000000000",\n        "phonetechtype": "1.PTT",\n        "countryaccesscode": null,\n        "phoneremark": null\n      }\n    }\n  ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

如何创建一个架构来处理 PySpark 中的这些列?

\n

schema json apache-spark pyspark pyspark-schema

3
推荐指数
1
解决办法
4981
查看次数