我正在学习 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) 我有一个包含多个列的镶木地板文件,其中有 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}\nRun Code Online (Sandbox Code Playgroud)\n如何创建一个架构来处理 PySpark 中的这些列?
\n