| ## 修改hdfs-site.xml |
| <property> |
| <name>hive.metastore.warehouse.dir</name> |
| <value>hdfs: |
| <description>location of default database for the warehouse</description> |
| </property> |
| |
| ## 保存至table表格中 |
| val sparkConf = new SparkConf().setAppName("demo03").setMaster("local[*]") |
| val ss = SparkSession.builder().config(sparkConf).getOrCreate() |
| |
| import ss.implicits._ |
| val seq: Seq[(String, Int)] = Array( |
| ("zs", 20), |
| ("ls", 21), |
| ("ww", 22), |
| ("ml", 23), |
| ("zb", 24), |
| ("wb", 20) |
| ) |
| val dataFrame: DataFrame = seq.toDF("name", "age") |
| dataFrame.createOrReplaceTempView("student") |
| val dataFrame1 = ss.sql("select * from student where age>22") |
| dataFrame1.show() |
| |
| |
| * 将数据写出到spark.sql.warehouse.dir 路径下 |
| */ |
| dataFrame1.write.mode(SaveMode.Overwrite).saveAsTable("stud") |
| val frame = ss.sql("select * from stud") |
| frame.show() |
| val frame1 = ss.sql("show tables") |
| frame1.show() |
| |
| |
| |
| |
| dataFrame1.write.mode(SaveMode.Append).csv("hdfs://node1:9000/sparksql/a.csv") |
| dataFrame1.write.mode(SaveMode.Append).json("hdfs://node1:9000/sparksql/json") |
| dataFrame1.write.mode(SaveMode.Append).parquet("hdfs://node1:9000/sparksql/parquet") |
| dataFrame1.write.mode(SaveMode.Append).orc("hdfs://node1:9000/sparksql/orc") |
| val properties = new Properties() |
| properties.setProperty("user", "root") |
| properties.setProperty("password", "Jsq123456...") |
| dataFrame1.write.mode(SaveMode.Append).jdbc("jdbc:mysql://node1:3306/project?serverTimezone=UTC", "student_info", properties) |
| |
| |
| |
| |
| val dataset: Dataset[String] = dataFrame1.map((line) => { |
| (line.get(0) + " " + line.get(1)) |
| }) |
| dataset.write.mode(SaveMode.Append).text("hdfs://node1:9000/sparksql/text") |
| |
SaveMode介绍
SaveMode |
解释 |
SaveMode.ErrorIfExists(default) |
如果文件存在,则报错 |
SaveMode.Append |
追加 |
SaveMode.Overwrite |
覆盖写 |
SaveMode.Ignore |
数据存在,则忽略 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?