DataFrame的DataFrame的常用操作


theme: fancy

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

DataFrame提供了两种语法风格,即DSL风格语法和SQL风格语法。二者在功能上并无区别,仅仅是根据用户习惯,自定义选择操作方式. * DSL风格 DataFrame提供了一个领域特定语言(DSL)以方便操作结构化数据。 * SQL风格 在程序中直接使用spark.sql()方式执行SQL查询,结果将作为一个DataFrame返回,使用SQL风格操作的前提是将DataFrame注册成一个临时表。

1. DSL风格操作DataFrame

image.png

image.png groupBy()方法返回的是一个GroupedData对象,GroupedData对象可调用的常用的方法如下。

image.png

image.png

2. SQL风格操作DataFrame

DataFrame可以被看作是一个关系型 数据表,然后可以在程序中使用spark.sql()方法执行SQL查询,结果将作为一个DataFrame返回。\ 步骤1. 将DataFrame注册成一个临时表

scala > personDF.registerTempTable("t_person") 步骤2. 调用spark.sql() 方法查询年龄最大的前两名人的信息

``` scala > spark.sql("select * from t_person order by age desc limit 2").show() +---+------+---+ | id| name|age| +---+------+---+ | 6| jerry| 40| | 5|tianqi| 35| +---+------+---+

``` 3. 查询年龄大于25的人的信息

``` scala > spark.sql("select * from t_person where age > 25").show() +---+-------+---+ | id | name |age| +---+-------+---+ | 2 | lisi | 29 | | 4 | zhaoliu| 30 | | 5 | tianqi | 35 | | 6 | jerry | 40 | +---+-------+---+

```

3.保存DataFrame,有以下三种形式:

  • 保存成文本文件
  • 保存到外部数据库
  • 保存为Hive表\ write()方法可以将DataFrame保存,write操作有mode方法,可以指定当数据已经存在的情况如何处理。 Overwrite代表覆盖目录下之前存在的数据。\ Append代表给指导目录下追加数据。\ Ignore代表如果目录下已经有文件,那就什么都不执行。\ ErrorIfExists代表如果保存目录下存在文件就报错。

    保存DataFrame——保存成文本文件

df.write.mode("overwrite").parquet(path: String) df.write.mode("overwrite"). json(path: String) df.write.mode("overwrite").option("header", "true").option("sep", ";"). csv(path: String) df.write.mode("overwrite").text(path: String) //只能有一个String字段

保存DataFrame——保存到外部数据库

jdbc(url: String, table: String, Properties: Properties)

保存DataFrame——保存为Hive表

df.write.mode("overwrite"). saveAsTable(tableName: String)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷月半明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值