【发布时间】:2020-05-18 19:27:18
【问题描述】:
我尝试在 spark 数据框中加载以下 data.json 文件:
{"positionmessage":{"callsign": "PPH1", "name": 0.0, "mmsi": 100}}
{"positionmessage":{"callsign": "PPH2", "name": 0.0, "mmsi": 200}}
{"positionmessage":{"callsign": "PPH3", "name": 0.0, "mmsi": 300}}
通过以下代码:
from pyspark.sql import SparkSession
from pyspark.sql.types import ArrayType, StructField, StructType, StringType, IntegerType
appName = "PySpark Example - JSON file to Spark Data Frame"
master = "local"
# Create Spark session
spark = SparkSession.builder \
.appName(appName) \
.master(master) \
.getOrCreate()
# Create a schema for the dataframe
schema = StructType([
StructField('callsign', StringType(), True),
StructField('name', StringType(), True),
StructField('mmsi', IntegerType(), True)
])
# Create data frame
json_file_path = "data.json"
df = spark.read.json(json_file_path, schema, multiLine=True)
print(df.schema)
print(df.head(3))
它打印:[Row(callsign=None, name=None, mmsi=None)]。 我做错了什么?我已经在系统设置中设置了我的环境变量。
【问题讨论】:
-
好的,谢谢。我刚开始学习 pyspark 并探索与 Pandas 的相似之处/不同之处。
标签: json pyspark pyspark-dataframes