加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:06:29 所属栏目:安全 来源:网络整理
导读:如何将这一行转换为数据帧? 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 = Struct
如何将这一行转换为数据帧?

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读