栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaBean/scala class+Java List

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaBean/scala class+Java List

JavaBean/scala class+Java List

1.不使用JavaBean
object Demo3 extends LoggerTrait {
def main(args: Array[String]): Unit = {
// 1.通过自己写的工具类获取SparkSession对象
val spark: SparkSession = SparkUtils_My.getSparkSessionDefault(“demo3”)

    // 2.RDD+Schema(表头)
    // 2.1 spark底层是SparkCore,我们通过spark调用SparkCore加载List集合
    // 2.1.1 RDD
    val stuRDD: RDD[Row] = spark.sparkContext.parallelize(List(
        Row(1, "zs", 21),
        Row(2, "ls", 43),
        Row(3, "ww", 56),
        Row(4, "zl", 33)
    ))
    // 2.2 Schema
    val struct: StructType = StructType(List(
        // 1.字段名称  2.字符的类型 3.是否可以为空
        StructField("id", DataTypes.IntegerType, false),
        StructField("name", DataTypes.StringType, false),
        StructField("age", DataTypes.IntegerType, false)
    )
    )

    // 创建Dataframe
    val df: Dataframe = spark.createDataframe(stuRDD,struct)

    df.show()

}

}

2.使用JavaBean
object Demo2 extends LoggerTrait {
def main(args: Array[String]): Unit = {
// 1.获取SparkSession对象
val spark: SparkSession = SparkSession.builder().master(“demo2”).master(“local[]").getOrCreate()
// 2.导入隐式转换
import spark.implicits._
// 3.创建List
val stuList = List(
new Student(1, “zs”, 12),
new Student(2, “ls”, 23),
new Student(3, “ww”, 25),
new Student(4, “zl”, 34)
)
// 将scala的list转成java的list
val stu: util.List[Student] = JavaConversions.seqAsJavaList(stuList)
// 创建dataframe
val df: Dataframe = spark.createDataframe(stu, classOf[Student])
// 打印表结构
df.printSchema()
// 打印表
df.show()
println("
”*100)

    // 创建一个表名
    df.createOrReplaceTempView("stu")
    // 执行sql
    spark.sql(
        """
          |select *
          |from stu
          |where age>20
          |""".stripMargin).show()
}

}

class Student{
@BeanProperty var id:Int= _
@BeanProperty var name:String= _
@BeanProperty var age:Int= _

// 构造函数
def this(id:Int,name:String,age:Int){
    this()// 第一行必须调用其他构造或者无参构造
    this.id=id
    this.name=name
    this.age=age
}

}
@注意:javaBean必须是class类,不能是case class Student(样例类),虽然使用样例类代码不报错,但是加载不出数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/489222.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号