ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DataFrame中的行动算子操作2

2022-08-30 13:30:08  阅读:254  来源: 互联网

标签:hdfs val SaveMode dataFrame1 DataFrame 行动 算子 node1 mode


## 修改hdfs-site.xml
<property> 
  <name>hive.metastore.warehouse.dir</name> 
  <value>hdfs://node1:9000/user/hive/warehouse</value>
  <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)

SaveMode介绍

SaveMode 解释
SaveMode.ErrorIfExists(default) 如果文件存在,则报错
SaveMode.Append 追加
SaveMode.Overwrite 覆盖写
SaveMode.Ignore 数据存在,则忽略

标签:hdfs,val,SaveMode,dataFrame1,DataFrame,行动,算子,node1,mode
来源: https://www.cnblogs.com/jsqup/p/16638958.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有