DataFrame 转换为Dataset

Posted liuge36

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataFrame 转换为Dataset相关的知识,希望对你有一定的参考价值。

写在前面:
A DataFrame is a Dataset organized into named columns.
A Dataset is a distributed collection of data.

贴代码:

package february.sql

import org.apache.spark.sql.SparkSession

/**
  * Description:
  * DataFrame 转换为Dataset
  * DataSet的操作
  *
  * @Author: 留歌36
  * @Date: 2019/2/25 20:15
  */
object DatasetApp extends App {
  val spark = SparkSession.builder().appName(this.getClass.getSimpleName).master("local[2]").getOrCreate()
  // 注意: 需要导入隐私转换
  import spark.implicits._

  val path = "f:\infos.csv"
  // spark 解析csv文件,
  val DF = spark.read.option("header","true").option("inferSchema","true").csv(path)
  DF.show()

  // DataFrame 转换为Dataset
  val DS = DF.as[Infos]
  // 常用的两种输出方式
  DS.select(DS("name")).show()
  DS.map(line => line.name).show()

  //

  spark.stop()

  case class Infos(id:Int, name:String,age:Int)
}

简单的csv文件:
infos.csv

id,name,age
1,zhangshan,21
2,lisi,32
3,wangwu,15
4,haha,23

更多相关小demo:每天一个程序:https://blog.csdn.net/liuge36/column/info/34094

以上是关于DataFrame 转换为Dataset的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spark 中将 JavaPairInputDStream 转换为 DataSet/DataFrame

如何在不收集的情况下将 RDD、Dataframe 或 Dataset 直接转换为广播变量?

Scala - 如何将 Dataset[Row] 转换为可添加到 Dataframe 的列

如何将具有 Decimal 的 spark DataFrame 转换为具有相同精度的 BigDecimal 的 Dataset?

如何在不从 DataFrame 转换并访问它的情况下将列添加到 Dataset?

Spark成长之路(13)-DataSet与DataFrame