首页 > 其他分享 >DataFrame中的行动算子操作2

DataFrame中的行动算子操作2

时间:2022-08-30 13:33:10浏览次数:55  
标签: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
From: https://www.cnblogs.com/jsqup/p/16638958.html

相关文章

  • DataFrame中的行动算子操作1
    valconf=newSparkConf().setAppName("action").setMaster("local[*]")valsession=SparkSession.builder().config(conf).getOrCreate()valseq:Seq[(String,In......
  • DataFrame与rdd之间的转换(val rdd1 = dataFrame.rdd)
    核心语句valrdd1=dataFrame.rddpackageSparkSQL.DataFreamCreate.dataframetorddimportorg.apache.spark.SparkConfimportorg.apache.spark.rdd.RDDimportorg.......
  • DataFrame中的转换算子操作1
    valsparkConf=newSparkConf().setMaster("local[2]").setAppName("tran")valsparkSession=SparkSession.builder().config(sparkConf).getOrCreate()valseq:Seq......
  • DataFrame中的转换算子2
    valsparkConf=newSparkConf().setMaster("local[2]").setAppName("tran")valsparkSession=SparkSession.builder().config(sparkConf).getOrCreate()valseq:Seq......
  • DataFrame操作数据的两种方式(SQL和DSL)
    SQL方式需要将DataFrame注册成为一张临时表,并给临时表起名字,通过SQL语句查询分析DataFrame中数据局部临时表、全局临时表[注意]:--1如果我们注册的是全局表,查询全局表......
  • 从外部存储的结构化文件创建DataFrame---常用的一种方式
    1.从txt文件中创建DataFrame从txt文件中创建DataFrame如果是从普通的文本文件创建DataFrame文件中的列和列的分隔符不清楚所以创建的DataFrame只有一列,一......
  • 从关系型数据库中创建DataFrame
    说明:/*需要引入依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version......
  • 从Hive中使用HQL语句创建DataFrame--常用方式
    默认情况下SparkSession不支持读取Hive中的数据,也不支持操作HQL语法,如果要读取Hive中的数据,需要开启Hive的支持,构建sparkSession的时候调用一个函数enableHiveSupport()......
  • RDD,DataFrame,DataSet
    RDD:以Person为类型参数,但是Spark框架本身不了解Person类的内部结构。DataFrame:DataFrame每一行的类型固定为Row,每一列的值没法直接访问,只有通过解析才能获取各个......
  • 分区器算子--转换算子
    1.HashPartitioner定义:HashPartitioner----按照key值的hashcode的不同分到不同分区里面弊端:可能会造成数据倾斜问题(每一个分区分配的数据可能差别很多)objectWordCo......