- 说明
| 底层用到了函数的柯里化,需要传递两个值。 |
| 第二个值是一个隐式参数,需要定义一个隐式变量给隐式参数传递值。 |
| 隐式变量不需要我们定义 在SparkSession中全部给我们定义好了。 |
| 隐式变量是一个编码器Encoder变量 |
| 我们只需要导入即可 |
| import session.implicits._ |
- 与dataframe的不同:
Dataset中列名是和传入的集合、RDD的类型是有关系的,
如果类型就是普通集合类型或者元组类型或者是普通类型 那列名随机生成。
如果类型是Bean,那么列名就是Bean的属性名,无需指定。而dataframe需要指定。
- 通过集合创建
| package SparkSQL.DataSet |
| |
| import org.apache.spark.SparkConf |
| import org.apache.spark.sql.{DataFrame, Dataset, SparkSession} |
| |
| object CreateDatasetByCreateDataset { |
| def main(args: Array[String]): Unit = { |
| val sparkConf = new SparkConf().setAppName("demo01").setMaster("local[*]") |
| val session = SparkSession.builder().config(sparkConf).getOrCreate() |
| |
| |
| import session.implicits._ |
| val dataset: Dataset[(String, Int)] = session.createDataset(Array(("zs", 20), ("ls", 21))) |
| dataset.show() |
| } |
| } |
- 通过rdd创建
| import session.implicits._ |
| val rdd: RDD[(String, Int)] = session.sparkContext.makeRDD(Array(("zs", 20), ("ls", 21))) |
| val dataset1 = session.createDataset(rdd) |
| dataset1.show() |
- 通过list创建
- 定义:createDataset(util.List[T])
| import session.implicits._ |
| val dataset2: Dataset[(String, Int)] = session.createDataset(List(("zs", 20), ("ls", 22))) |
| dataset2.show() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律