首页 > 其他分享 >通过createDataset创建Dataset数据集(Array,RDD,List)

通过createDataset创建Dataset数据集(Array,RDD,List)

时间:2022-08-30 14:46:54浏览次数:55  
标签:val RDD List Dataset createDataset session import 隐式

  1. 说明
  • 定义:
底层用到了函数的柯里化,需要传递两个值。
第二个值是一个隐式参数,需要定义一个隐式变量给隐式参数传递值。
隐式变量不需要我们定义 在SparkSession中全部给我们定义好了。
隐式变量是一个编码器Encoder变量
我们只需要导入即可
import session.implicits._
  • 与dataframe的不同:
    Dataset中列名是和传入的集合、RDD的类型是有关系的,
    如果类型就是普通集合类型或者元组类型或者是普通类型 那列名随机生成。
    如果类型是Bean,那么列名就是Bean的属性名,无需指定。而dataframe需要指定。
  1. 通过集合创建
  • 定义:createDataset(Seq[T])
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()

    // createDataset需要一个隐式变量值 Encoder[Teacher],所以需要导入隐式函数
    import session.implicits._
    val dataset: Dataset[(String, Int)] = session.createDataset(Array(("zs", 20), ("ls", 21)))
    dataset.show()
  }
}
  1. 通过rdd创建
  • 定义:createDataset(RDD[T])
import session.implicits._
val rdd: RDD[(String, Int)] = session.sparkContext.makeRDD(Array(("zs", 20), ("ls", 21)))
val dataset1 = session.createDataset(rdd)
dataset1.show()
  1. 通过list创建
  • 定义:createDataset(util.List[T])
import session.implicits._
val dataset2: Dataset[(String, Int)] = session.createDataset(List(("zs", 20), ("ls", 22)))
dataset2.show()

标签:val,RDD,List,Dataset,createDataset,session,import,隐式
From: https://www.cnblogs.com/jsqup/p/16639232.html

相关文章

  • 通过toDS()方法创建Dataset
    objectCreateDatasetByToDs{defmain(args:Array[String]):Unit={valconf=newSparkConf().setAppName("demo01").setMaster("local[*]")valsessio......
  • List集合里添加数据
    List<User>?users=?new?List<User>();users.Add(new?User{ID=1,Name="王老师",Pwd=1});users.Add(new?User{ID=2,Name="李老师",Pwd=1});users.Add(new?User{ID=3,Name="马......
  • List<Integer>详解
    一.关于Integer一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double等。然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类......
  • DataFrame与rdd之间的转换(val rdd1 = dataFrame.rdd)
    核心语句valrdd1=dataFrame.rddpackageSparkSQL.DataFreamCreate.dataframetorddimportorg.apache.spark.SparkConfimportorg.apache.spark.rdd.RDDimportorg.......
  • js Linked List Generator All In One
    jsLinkedListGeneratorAllInOnejs链表生成器classListNode{constructor(val,next){this.val=(val===undefined?0:val)this.next=(nex......
  • 集合.LinkedList
    LinkedList链表结构实现,增删快,查询慢 packagejihe;importjava.util.Iterator;importjava.util.LinkedList;importjava.util.ListIterator;/***LinkedLis......
  • vue 监听事件addEventListener
    vue添加监听事件addEventListener//vue添加监听事件,addEventListener第二个参数要绑在this上,即需要在methods中声明,否则销毁的时候会报错//在mounted中监听,在beforeD......
  • 集合.ArrayList
    【重点】ArrayList:数组结构实现,查询快、增删慢JDK1.2版本,运行效率快、线程不安全源码分析:DEFAULT_CAPACITY=10;默认容量注意:如果没有向集合中添加任何元素时,容......
  • List集合拆分为多个List
    publicstatic<T>List<List<T>>split(List<T>resList,intsubListLength){if(CollectionUtils.isEmpty(resList)||subListLength<=0){......
  • Java List集合返回值去掉中括号('[ ]')的操作
    调用StringUtils工具类的strip()方法去掉中括号"[]": 或者自己写工具类publicstaticvoidmain(String[]args){Strings="[aasa,bbbbb]";Strings......