目前我正在解析我的Json提要:
rdd = self.spark.sparkContext.parallelize([(json_feed)])
df = self.spark.read.json(rdd)
只要值都在那里就可以工作,但是如果我有一个Json(作为Python字典),比如:
json_feed = { 'name': 'John', 'surname': 'Smith', 'age': None }
我想在age
列上获得具有null
值的生成的DataFrame,但我现在得到的是_corrupt_record
。是否有一种方法来解析None
值null
与Pyspark?
在Spark中导入缺少值的JSON是非常受限的。一个简单的解决方法是将文件作为文本读取,并使用所需的模式进行解析。
假设JSON缺少"age"字段:
!cat /content/sample_data/test.json
{ "name": "John", "surname": "Smith" }
首先,将文件作为文本读取,然后使用所需的模式从它创建数据框架:
rdd = spark.sparkContext.textFile("/content/sample_data/test.json").map(eval)
df = spark.createDataFrame(data=rdd, schema="name string, surname string, age int")
df.show(truncate=False)
+----+-------+----+
|name|surname|age |
+----+-------+----+
|John|Smith |null|
+----+-------+----+
df.printSchema()
root
|-- name: string (nullable = true)
|-- surname: string (nullable = true)
|-- age: integer (nullable = true)