我在 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 数据帧时做错了吗?