我已经完成了一些示例代码,关于如何在镶木地板文件中存储数据并实现它几乎如programming guide所示:
val schema = StructType(
List(StructField("id", LongType, false), StructField("values", ArrayType(FloatType), false))
)
val dataframe = sqlContext.createDataFrame(rowRDD, schema).saveAsParquetFile("file.parquet")
阅读镶木地板文件时,我使用
sqlContext.parquetFile("file.parquet")
编程指南中的示例总是假设您使用字符串,因此以下工作非常直接:
data.map(t => "Name: " + t(0)).collect().foreach(println)
但是,正如您在我的架构定义中所看到的,我使用了一个float数组。当然,我可以自己将字符串解析为浮点数组,但它似乎并不是这样做的。这样做的最佳方式是什么?
答案 0 :(得分:1)
Row
会返回Any
,因此您应该只能使用t.getSeq[Float](0)
,它会将您的数据作为Seq[Float]
返回。您还可以使用printSchema
上的DataFrame
来验证该类型确实是ArrayType