0

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

然后我在指定上述模式的数据帧(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 数据帧时做错了吗?

4

1 回答 1

0

通过执行 df.na.fill(0),我能够处理“无”!

于 2016-02-18T09:20:03.770 回答