1

我已经完成了一些示例代码,关于如何将数据存储在镶木地板文件中,并按照编程指南中所示的方式实现了它:

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)

但是,正如您在我的架构定义中看到的那样,我使用的是浮点数组。当然,我可以自己将字符串解析为浮点数组,但这似乎不是这样做的方法。这样做的最佳方法是什么?

4

1 回答 1

1

Row与基本索引器一起使用时返回一个Any,因此您应该能够只使用t.getSeq[Float](0)它,它会将您的数据作为Seq[Float]. 您还可以使用printSchema您的DataFrame来验证该类型确实是ArrayType

于 2015-03-17T15:12:36.260 回答