Spark Row对象入门到熟悉

简单实用举例

// Create a Row from values.
//可以直接创建row对象
 private val row: Row = Row("a", "b", "c")
 println(row) //[a,b,c]
 //可以利用索引取值,从0开始
 println(row(0))//a
 println(row(1))//b
 //Throws:
 //ClassCastException – when data type does not match.
 //可以利用各种get方法获取对应类型的元素,参数为索引
 println(row.getString(1))//b
 //返回位于位置i的值。
 // 对于基元类型,如果value为null,则返回特定于基元的“zero value”,
 // 即Int的0-使用isNullAt确保值不为null
 println(row.getAs(0))//a
 //ArrayIndexOutOfBoundsException
 println(row.getAs(3))

可以通过集合构建Row

//此方法可用于构造具有给定值的行。
private val row: Row = Row(List("a", "b", "f"))
private val row1: Row = Row(Array(1, 2, 7))
private val row2: Row = Row(Seq(9, 4, 2))
private val session: SparkSession = SparkSession.builder().appName("test").master("local").getOrCreate()
  private val df: DataFrame = session.read.json("file:///D:\\data\\emp.json")
  private val rows: Array[Row] = df.take(2)
  for(x<-rows){
  //可以依据fieldneame获取row中对应的值
    println(x.getAs("empno"))
    //row是可以整行打印的
    println(x)
  }

执行结果

7369
[null,20,7369,SMITH,1980-12-17,CLERK,7902,800.0]
7499
[300,30,7499,ALLEN,1981-02-20,SALESMAN,7698,1600.5]

DataFrame与DataSet的关系

type DataFrame = Dataset[Row]

总结

  • row对象可以整行输出
  • row对象中的内容可以利用索引,fieldname进行取值
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark 3.0从入门到精通》课件是针对Apache Spark 3.0版本设计的一套学习教材。Spark是一种快速、可扩展的大数据处理框架,具有高效的数据处理能力和强大的分布式计算功能,被广泛应用于大数据分析和机器学习等领域。 这套课件以入门到精通的路径,逐步介绍Spark 3.0的核心概念、基本使用方法和高级特性。首先,课件会对Spark的历史背景、发展现状进行介绍,以及Spark 3.0版本相较之前版本的新特性和改进。接着,课程将深入讲解Spark的核心组件,包括Spark Core、Spark SQL、Spark Streaming、Spark MLlib和Spark GraphX,以及它们在大数据处理和机器学习中的应用。 除了理论知识的传授,课件还会通过大量的实例演示和实践操作,帮助学员快速上手和理解Spark的使用。学员将学习如何使用Spark进行数据读取和处理、数据清洗和转换、数据分析和可视化、机器学习模型构建和评估等任务。同时,课件还会介绍一些高级的Spark特性,如图计算、流处理和分布式机器学习等,以帮助学员进一步提升对Spark的理解和应用能力。 《Spark 3.0从入门到精通》课件不仅适合初学者,也适合有一定Spark基础的学员进一步提升技能。通过系统学习课件的内容,学员可以全面掌握Spark的基本原理和使用方法,并能够利用Spark解决实际的大数据处理和机器学习问题。课件还提供了丰富的实验和项目案例,以帮助学员巩固所学知识,并提供进一步的实践指导和学习资源。 总之,《Spark 3.0从入门到精通》课件是一套全面系统的学习教材,通过深入浅出的讲解和实践操作,帮助学员快速掌握Spark的核心概念和使用技巧,成为精通Spark的专家。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值