如何将这一行转换为数据帧?
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.