【发布时间】:2017-08-31 16:52:18
【问题描述】:
一个表示为 null 的 Json 字段(年龄如下)在 Dataframe printschema 中以字符串形式出现
输入json文件
{"AGE":null,"NAME":"abc","BATCH":190}
{"AGE":null,"NAME":"abc","BATCH":190}
Spark 代码和输出
val df = spark.read.json("/home/white/tmp/a.json")
df.printSchema()
df.show()
*********************
OUTPUT
*********************
root
|-- BATCH: long (nullable = true)
|-- AGE: string (nullable = true)
|-- NAME: string (nullable = true)
+-----+----+----+
|BATCH|AGE|NAME|
+-----+----+----+
| 190|null| abc|
| 190|null| abc|
+-----+----+----+
我希望年龄很长,目前我正在通过创建一个新的 StructType 来实现这一点,其中年龄字段为 Long 并将 Dataframe 重新创建为 df.sqlContext.createDataFrame( df.rdd, newSchema )。我可以直接使用 spark.read.json api 完成这个吗?
【问题讨论】:
-
我应该添加如何在 json 中将整数值表示为 null,以便 spark 可以理解特定字段是整数。
标签: apache-spark apache-spark-sql spark-dataframe