scala – 如何将数组[Row]转换为DataFrame

前端之家收集整理的这篇文章主要介绍了scala – 如何将数组[Row]转换为DataFrame前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何将这一行转换为数据帧?

val oneRowDF = myDF.first // gives Array[Row]

谢谢

解决方法

在我的回答中,df1是一个DataFrame [text:string,y:int],仅用于测试 – val df1 = sc.parallelize(List(“a”,1“)).toDF(”text“,”y“) .

val schema = StructType(
    StructField("text",StringType,false) ::
    StructField("y",IntegerType,false) :: Nil)
val arr = df1.head(3); // Array[Row]
val dfFromArray = sqlContext.createDataFrame(sparkContext.parallelize(arr),schema);

您还可以映射并行化数组并转换每一行:

val dfFromArray = sparkContext.parallelize(arr).map(row => (row.getString(0),row.getInt(1)))
    .toDF("text","y");

如果是一行,您可以运行:

val dfFromArray = sparkContext.parallelize(Seq(row)).map(row => (row.getString(0),"y");

在Spark 2.0中使用SparkSession而不是sqlContext.

猜你在找的Scala相关文章