九十一、Spark-SparkSQL(多数据源处理)

举报
托马斯-酷涛 发表于 2022/05/26 00:19:10 2022/05/26
【摘要】 读取JSON文件,以JSON,CSV,jdbc格式写出 数据展示 代码 package org.example.SQL import org.apache.log4j.{Level, Logger}import org.apache.spark.sql.{DataFrame, SaveMode, SparkSes...

读取JSON文件,以JSON,CSV,jdbc格式写出

数据展示

代码


  
  1. package org.example.SQL
  2. import org.apache.log4j.{Level, Logger}
  3. import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
  4. import java.util.Properties
  5. object sql_DataSource { //支持外部数据源
  6. //支持的文件数据格式:text/json/csv/parquet/orc...
  7. def main(args: Array[String]): Unit = {
  8. //不打印日志
  9. Logger.getLogger("org").setLevel(Level.ERROR)
  10. val spark: SparkSession = SparkSession.builder().appName("test2")
  11. .master("local[*]").getOrCreate()
  12. val sc = spark.sparkContext
  13. val df1: DataFrame = spark.read.json("data/input/json")
  14. df1.printSchema()
  15. df1.show()
  16. df1.coalesce(1).write.mode(SaveMode.Overwrite).json("data/output/json")
  17. df1.coalesce(1).write.mode(SaveMode.Overwrite).csv("data/output/csv")
  18. val prop = new Properties()
  19. prop.setProperty("user", "root")
  20. prop.setProperty("password", "123456")
  21. df1.coalesce(1).write.mode(SaveMode.Overwrite).jdbc("jdbc:mysql://localhost:3306/bigdata?characterEncoding=UTF-8", "person", prop)
  22. //如果没有,表自动创建
  23. spark.stop()
  24. }
  25. }

约束


  
  1. root
  2. |-- age: long (nullable = true)
  3. |-- id: long (nullable = true)
  4. |-- name: string (nullable = true)

数据打印


  
  1. +---+---+--------+
  2. |age| id| name|
  3. +---+---+--------+
  4. | 20| 1|zhangsan|
  5. | 29| 2| lisi|
  6. | 25| 3| wangwu|
  7. | 30| 4| zhaoliu|
  8. | 35| 5| tianqi|
  9. | 40| 6| kobe|
  10. +---+---+--------+

结果文件输出

json

csv

 jdbc

文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/124018945

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。