将DataFrame数据如何写入到Hive表中

pyspark dataframe存hive表 ##pyspark dataframez存hive表 需要写入hive表的dataframe为df_write,需要写入名为course_table的hive表 df_write.write.format("orc").mode("overwrite").saveAsTable("course_table") 这种表方式不用关心原来名为course_table的表结构和现有表结构是否一致,该写法... 阅读详情

1.将DataFrame数据如何写入到Hive表中?
2.通过那个API实现创建spark临时表?
3.如何将DataFrame数据写入hive指定数据表的分区中?





从spark1.2 到spark1.3,spark SQL中的SchemaRDD变为了DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多好用且方便的API。


DataFrame将数据写入hive中时,默认的是hive默认数据库,insertInto没有指定数据库的参数,本文使用了下面方式将数据写入hive表或者hive表的分区中,仅供参考。

1、将DataFrame数据写入到Hive表中

从DataFrame类中可以看到与hive表有关的写入Api有以下几个:

registerTempTable(tableName: String): Unit,
insertInto(tableName: String): Unit

insertInto(tableName: String, overwrite: Boolean): Unit
saveAsTable(tableName: String, source: String, mode: SaveMode, options: Map[String, String]): Unit



有很多重载函数,不一一列举
registerTempTable函数是创建spark临时表

insertInto函数是向表中写入数据,可以看出此函数不能指定数据库和分区等信息,不可以直接进行写入。

向hive数据仓库写入数据必须指定数据库,hive数据表建立可以在hive上建立,或者使用hiveContext.sql(“create table ....")
下面语句是向指定数据库数据表中写入数据:

  1. case class Person(name:String,col1:Int,col2:String)
  2. val sc = new org.apache.spark.SparkContext   
  3. val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
  4. import hiveContext.implicits._
  5. hiveContext.sql("use DataBaseName")
  6. val data = sc.textFile("path").map(x=>x.split("\\s+")).map(x=>Person(x(0),x(1).toInt,x(2)))
  7. data.toDF()insertInto("tableName")

创建一个case类将RDD中数据类型转为case类类型,然后通过toDF转换为DataFrame,调用insertInto函数时,首先指定数据库,使用的是hiveContext.sql("use DataBaseName")语句,就可以将DataFrame数据写入hive数据表中了


2、将DataFrame数据写入hive指定数据表的分区中

hive数据表建立可以在hive上建立,或者使用hiveContext.sql(“create table ...."),使用saveAsTable时数据存储格式有限,默认格式为parquet,可以指定为json,如果有其他格式指定,尽量使用语句来建立hive表。

将数据写入分区表的思路是:首先将DataFrame数据写入临时表,之后是由hiveContext.sql语句将数据写入hive分区表中。具体操作如下:

  1. case class Person(name:String,col1:Int,col2:String)
  2. val sc = new org.apache.spark.SparkContext   
  3. val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
  4. import hiveContext.implicits._
  5. hiveContext.sql("use DataBaseName")
  6. val data = sc.textFile("path").map(x=>x.split("\\s+")).map(x=>Person(x(0),x(1).toInt,x(2)))
  7. data.toDF().registerTempTable("table1")
  8. hiveContext.sql("insert into table2 partition(date='2015-04-02') select name,col1,col2 from table1")

使用以上方式就可以将dataframe数据写入hive分区表了

Spark写入Hive分区表的完整指南 在Spark中,将数据写入Hive分区表是一个常见的任务。本文将为您提供关于如何使用Spark将数据保存为Hive表并插入到分区的详细指南。通过以上步骤,您可以使用Spark将数据保存或插入到Hive分区表中。上述代码创建了一个SparkSession实例,配置了Hive的仓库目录,并启用了Hive支持。在上述示例中,我们首先创建了一个包含要保存的数据的DataFrame。在上述示例中,我们创建了一个包含要插入的数据的DataFrame,并使用。插入操作会根据数据的分区列将数据放入正确的分区。 阅读详情

相关推荐

python操作hive(四)

# 开发流程 from pyhive import hive # 创建hive连接对象 conn=hive.Connection(host='192.168.206.100',port=10000,username='root',database='orderdb') # 创建游标 cursor=conn.cursor() sql='select * from order6' # 执行sql cursor.execute(sql) # 遍历数据 for result in cursor.fetchall()

1623

spark 将dataframe数据写入Hive分区表

从spark1.2 到spark1.3,spark SQL中的SchemaRDD变为了DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多好用且方便的API。DataFrame将数据写入hive中时,默认的是hive默认数据库,insertInto没有指定数据库的参数,本文使用了下面方式将数据写入hive表或者hive表的分区中,仅供参考。1、将DataFra...

weixin_33939843的博客 2304

【Spark实战系列】sparkstreaming 消费多个 topic 数据写入不同的 hive 表

这几天有人问关于怎么把不同的topic的数据写入到hive的不同的表里,我写了一个简单的demo,大家可以参考一下, package hive import java.io.File import org.apache.kafka.clients.consumer.ConsumerRecord import org.apache.kafka.common.serialization.Stri...

JasonLee实时计算 5002

dataFrame存入到Hive

有多种方式把一个dataframe保存到hive表中: 1.直接把dataframe的内容写入到目标hive表 df.write().mode("overwrite").saveAsTable("tableName"); 或 df.select(df.col("col1"),df...

qq_43012693的博客 3137

ADRC自抗扰控制:工程抗扰“黑科技”,附C代码实战!

自抗扰控制(ADRC)是一种革新性的强鲁棒控制策略,通过主动估计和补偿系统扰动,无需精确数学模型即可实现优异控制性能。本文详细解析ADRC三大核心组件:跟踪微分器(TD)实现指令柔化,扩张状态观测器(ESO)实时估计总扰动,非线性状态反馈(NLSEF)完成动态补偿。针对二阶系统,文章提供完整的参数设计方法和C语言实现框架,包括关键函数fhan和fal的代码实现。ADRC将复杂对象"线性化"为积分器串联系统,显著提升抗扰能力,特别适用于电机控制、飞行器姿态等存在模型不确定性和强干扰的场景。

技术工作者 1736

工业4.0 底层逻辑

工业4.0 的概念已经被滥用了,它与物联网,工业物联网等概念一样,几乎什么都往里面装。演变成了一句口号和愿景。许多人并不清楚工业4.0的底层逻辑到底是什么?如何遵循工业4.0 的思想构建新一代智能制造系统?并没用清晰地展示工业4.0的技术路线图。

姚家湾博客 1994

Spark如何正确的写hive分区表

经常听到有人讲:spark写hive 分区表时,原本想覆盖一个分区的数据,但因为错误的编码导致整个表的分区被覆盖。本文针对此问题进行测试。 1. 测试结论 需要指定如下参数:"spark.sql.sources.partitionOverwriteMode", "dynamic" "hive.exec.dynamic.partition.mode", "nonstrict" saveAsTable方法会导致全表覆盖写,需要用insert into,详情下面的源代码 insert.

penriver的博客 1万+

SECS/GSM 测试工具 SecsExpress 的配置与实战应用

本文详细介绍了半导体设备通讯测试工具SecsExpress的配置与实战应用。作为专业的SECS/GSM协议调试工具,它能模拟Host与设备端进行双向测试,帮助工程师快速部署、验证通讯链路,并高效排查与RMS系统或真实设备间的联调问题,是提升半导体工厂设备集成与维护效率的利器。

yhn456789的博客 298

spark写表指定外部表_spark 将dataframe数据写入Hive分区表

从spark1.2 到spark1.3,spark SQL中的SchemaRDD变为了DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多好用且方便的API。DataFrame将数据写入hive中时,默认的是hive默认数据库,insertInto没有指定数据库的参数,本文使用了下面方式将数据写入hive表或者hive表的分区中,仅供参考。1、将DataFra...

weixin_29147347的博客 1776

Copula函数实战:如何用MATLAB计算气象干旱与农业干旱的联合概率?

本文提供了一份基于MATLAB的Copula函数实战指南,详细阐述了如何利用该多变量联合分布函数计算气象干旱与农业干旱的联合概率及条件概率。通过从数据预处理、边缘分布拟合到Copula模型选择与检验的完整流程,帮助环境科学与农业气象研究者量化干旱事件的关联风险,为风险评估提供定量依据。

weixin_29213655的博客 431

Creo模型装配总结

creo7.0的零件装配操作方法,建立基准面、新建约束、约束顺序

heda3的博客 1万+

hive 分区表_Spark将Dataframe数据写入Hive分区表的方案

DataFrame 将数据写入hive中时,默认的是hive默认数据库,insert into没有指定数据库的参数,数据写入hive表或者hive表分区中:1、将DataFrame数据写入到hive表中从DataFrame类中可以看到与hive表有关的写入API有一下几个:registerTempTable(tableName:String):Unit,inserInto(tableNa...

weixin_39734987的博客 1313

RK3588平台开发系列讲解(USB篇)UAC初识

📢本篇将介绍RK3588平台`UAC`的配置使用。

内核笔记 3881

Spark DataFrame数据写出

一、SparkSQL 统一API写出DataFrame数据 df.write.mode().format().option(K, V).save(PATH) # mode, 传入模式字符串可选:append 追加,overwriter 覆盖,ignore 忽略,error 重复就报异常(默认) # format, 传入格式字符串,可选:text,csv,json,parquet,orc,avro,jdbc # 注意text源只支持单列df写出 # option 设置属性,如:.option("sep", "

feizuiku0116的博客 1977

Unity WebView 插件⭐️(十八)3D WebView 原生2D模式 — Native 2D Mode

Unity中的 浏览器插件:3D WebView,利用好该插件我们可以自己使用Unity打造出一个自定义的多样化浏览器。可以用于2D显示,也可以用于3D空间场景中使用,在PC端、手机端和VR设备等都可以有一个非常好的效果。一起来浏览器插件:3D WebView的专栏学习使用吧!

努力前行,总会成为自己心中的那道光 7640

【ARM AMBA5 CHI 2 -- CHI 链路层详细介绍 】

目前有六个版本的 CHI 协议,CHI-A 是 CHI 协议的第一个版本。它提供了一个传输层,具有减少拥塞的功能。新通道、CHI 术语和组件命名的定义;请求、监听过滤器和缓存状态转换的示例;事务排序、独占访问和分布式虚拟内存(DVM)操作的规则;CHI-B 问题扩展了 CHI-A,但不能直接向后兼容 CHI-A。更大的物理地址宽度;原子事务;DVM 的 VMID 扩展;通道字段、事务结构和可靠性、可用性和可维护性(RAS)特性的描述;

CodingCos的博客 2535

spark 将dataframe数据写入Hive分区表

1、将DataFrame数据写入到Hive表中 从DataFrame类中可以看到与hive表有关的写入Api有以下几个: registerTempTable(tableName: String): Unit, insertInto(tableName: String): Unit insertInto(tableName: String, overwrite: Boolean): Unit sav...

ChengYanan的博客 2469

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

pandas dataframe 写入到hive

pandas dataframe 写入hive表 关键流程主要分为两步: 1:将pandas dataframe转换为sparkdataframe:这一步骤主要使用spark自带的接口: spark_df = spark.createDataFrame(pd_df) 2:将spark_df写入到hive的几种方式 spark_df.write.mode('overwrite').format("hive").saveAsTable("dbname.tablename") 以下是一个demo的完整代码:

weixin_39709476的博客 7780

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

spark 1.3.0 将dataframe数据写入Hive分区表

从spark1.2 到spark1.3,spark SQL中的SchemaRDD变为了DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多好用且方便的API。 DataFrame将数据写入hive中时,默认的是hive默认数据库,insertInto没有指定数据库的参数,本文使用了下面方式将数据写入hive表或者hive表的分区中,仅供参考。

mach_learn的专栏 7987

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

spark写入hive数据

packagehgs.spark.hive importorg.apache.spark.SparkConf importorg.apache.spark.SparkContext importorg.apac...

congtuo7221的博客 2738

Spark将Dataframe数据写入Hive分区表的方案

DataFrame 将数据写入hive中时,默认的是hive默认数据库,insert into没有指定数据库的参数,数据写入hive表或者hive表分区中:1、将Data...

微信搜:import_bigdata,大数据领域硬核原创作者 9408

spark分区读MySQL表_Spark 写入数据到Hive分区表

0.登录hive数据库,这里采用beeline[secret ~]$ beelinebeeline> ! connect jdbc:hive2://10.1.1.1:10000Enter username for jdbc:hive2://10.1.1.1:10000: secretEnter password for jdbc:hive2://10.1.1.1:10000: *******...

weixin_29476755的博客 664
上一篇: Host is not allowed to connect to this MySQL server解决方法
下一篇: 执行spark sql 遇到的问题
TheManOfCoding
博客等级 码龄9年 24粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值