Spark的DataFrame和DataSet和RDD区别你知道吗?

最近spark从1.6升级到2.3,研究了一下DataSet

DataFrame和DataSet和RDD区别

DataFrame是每一行是Row对象的数据集,也就是`DataFrame`, which is a Dataset of[[Row]].

DataSet是每一行是用户自定义的对象的数据集。

故DataFrame和DataSet的api是一致的。

RDD还是原来的RDD,升级到spark 2.3,原来spark 1.6的代码还是兼容的。

1.生成DataSet

两种方式生成DataSet

1.1.从存储系统

#从存储系统读取parquet文件生成DataSet:

val people = spark.read.parquet("...").as[Person] // Scala

#读取text问题

val spark = SparkSession.builder.appName("Simple Application").getOrCreate()

val textFile = spark.read.textFile("README.md")

textFile: org.apache.spark.sql.Dataset[String] = [value: string]

1.2.从已有的DataSet生成:

val names = people.map(_.name) // in Scala; names is a Dataset[String]


分享到:


相關文章: