获得"无"在pyspark中指定模式和读取json文件后的值

时间:2016-02-18 08:16:43

标签: json pyspark-sql

我在json格式的s3上有一个文件(filename = a)。我读了它并使用sqlContext.read.json创建了一个数据帧(df)。在检查df.printSchema;架构不是我想要的。所以我用double和string类型指定我自己的模式。

然后我在指定上述模式的数据帧(df3)中重新加载json数据,但是当我执行df3.head(1)时,我看到"无"我的一些变量的值。

见下面的代码 -

df = sqlContext.read.json(os.path.join('file:///data','a'))
print df.count()
df.printSchema()
df.na.fill(0)

指定我自己的架构(sch)之后。由于架构代码很长,我还没有把它包含在这里。

sch=StructType(List(StructField(x,DoubleType,true),StructField(y,DoubleType,true)))

f = sc.textFile(os.path.join('file:///data','a'))
f_json = f.map(lambda x: json.loads(x))    
df3 = sqlContext.createDataFrame(f_json, sch)
df3.head(1)
[Row(x=85.7, y=None)]

我获得'无'当我执行df3.head(1)时,我的所有列的值都是DoubleType(数据类型)。当我重新加载df3数据帧时,我做错了吗?

1 个答案:

答案 0 :(得分:0)

通过df.na.fill(0)我可以照顾“无”!