【发布时间】:2019-09-20 16:18:26
【问题描述】:
我有三列数据框; ID、CO_ID 和 DATA,其中 DATA 列有以下两种不同的模式:
|ID |CO_ID |Data
|130 |NA | [{"NUMBER":"AW9F","ADDRESS":"PLOT NO. 230, JAIPUR RJ","PHONE":999999999,"NAME":"SACHIN"}]
|536 |NA | [{"NUMBER":"AW9F","ADDRESS":"PLOT NO. 230, JAIPUR RJ","PHONE":999999999,"NAME":"SACHIN"}]
|518 |NA | null
|938 |611 | {"NUMBER":"AW9F","ADDRESS":"PLOT NO. 230, JAIPUR RJ","PHONE":999999999,"NAME":"SACHIN"}
|742 |NA | {"NUMBER":"AW9F","ADDRESS":"PLOT NO. 230, JAIPUR RJ","PHONE":999999999,"NAME":"SACHIN"}
现在我想创建一个包含 ID、CO_ID、NUMBER、ADDRESS 和 NAME 列的数据框。如果没有值,则在NUMBER、ADDRESS 和NAME 中填写null。
首先我必须用不同的模式过滤上面的数据框,我该怎么做?
【问题讨论】:
-
数据列的类型是什么?看起来有些行是数组,而有些则不是。
-
是的,这只是问题,我有不同类型的数据,我该如何处理这种问题?
-
Spark 不允许使用不同的类型。做
df.printSchema()的结果是什么? -
看到我有 csv 文件,其中有这样的数据,现在我必须创建包含上述列的表。有什么办法吗?
-
架构显示如下根 |-- ID: string (nullable = true) |-- CO_ID: string (nullable = true) |-- DATA: string (nullable = true)
标签: apache-spark apache-spark-sql