最近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]
閱讀更多 從大數據說起 的文章