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

利用Spark将DataFrame、Hive数据写入Oracle 本篇博文的主要内容: 1、分析Spark读写Oracle方法 2、DataFrame数据写入Oracle 3、Hive数据写入Oracle DataFrame是在Spark1.3.0中推出的新的api,它借鉴了R语言DataFrame的一些优点,这让spark具备了处理大规模结构化数据的能力。作为Spark初学者,在通过学习使用Spark读写RDBMS数据的过程中,遇到了一系统的问 阅读详情

从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 ....")

下面语句是向指定数据库数据表中写入数据:

case class Person(name:String,col1:Int,col2:String)
val sc = new org.apache.spark.SparkContext   
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
import hiveContext.implicits._
hiveContext.sql("use DataBaseName")
val data = sc.textFile("path").map(x=>x.split("\\s+")).map(x=>Person(x(0),x(1).toInt,x(2)))
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分区表中。具体操作如下:

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


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




spark把kafka数据写到hive 写入分区表: 准备工作:先建好分区表 方法一:(使用dataframe) 写数据到数据所在的位置,因为hive分区的本质就是分文件夹,先用spark把数据写到文件夹位置,然后执行sql添加分区 1.写数据到文件夹 //df为DataFrame df.write.mode(SaveMode.Overwrite).format("parquet") .partitionBy("day" , "dev_platform" ).save(outputPath) 2.寻找刚刚数据新建的. 阅读详情

相关推荐

Spark DataFrame vector 类型存储到Hive表

Spark DataFrame vector 类型存储到Hive表 Spark DataFrame vector 类型存储到Hive表 软件版本 场景描述 问题的迂回解决方法 示例 1. 软件版本 软件 版本 Spark 1.6.0 Hive 1.2.1 2. 场景描述 在使用Spark时,有时需要存储DataFram...

fansy1990的专栏 4349

Spark 将DataFrame的数据写入Hive分区表

方法1 用 insertInto 该方法按照 df 中字段顺序确定字段与分区字段,与 df 的列名无关 mode(“overwrite”):新数据以覆盖方式写入原有分区(其它分区不受影响) mode(“append”):新数据以追加方式写入原有分区 val df: DataFrame = ... // 开启 Hive 表动态分区 spark.sql("set hive.exec.dynamic.partition=true") spark.sql("set hive.exec.dynamic.partit

空藍性忘 的博客 2125

Spark读写Hive

环境:CDH5.8,Spark:1.6.0;Hadoop:2.6.0,Intellij IDEA14 ,jdk1.8,sdk:2.10.6 ,maven:3.3.3;工程下载地址:1. Spark读取HiveSpark读取Hive,使用的是HiveContext,第一步使用sc生成一个HiveContext,然后其他操作就是在HiveContext里面操作了;比如使用HiveContext的tab

fansy1990的专栏 1万+

spark-使用DataFrameWriter或者spark-sql向hive分区表中插入数据

saveAsTable 在此方法中,如果数据源表存在于Spark-catalog中,则使用save方法参数中的模式来确定如何插入。如果表不在Spark-catalog中,我们总是会覆盖它(比如JDBC数据源中的一个表),因为spark可以整合hive,所以hive中的表在Spark-catalog中,但比如spark创建的临时表,就不在Spark-catalog中。如果表在Spark-catalog中,则追加。 如果df根据一个没分区的 hive表创建,并且可以转换为hive内置的序列化器(比如ORC和P

DCHAO的博客 5326

解密UFS Explorer:Drobo BeyondRAID数据恢复实战指南

本文详细介绍了使用UFS Explorer Professional Recovery软件中的Drobo BeyondRAID助手进行数据恢复的完整实战流程。当Drobo设备因BeyondRAID配置信息丢失而无法访问时,该工具能安全、只读地扫描硬盘,虚拟重建存储池,帮助用户找回宝贵数据。指南涵盖了从前期准备、硬盘选择、配置扫描到数据安全导出的每一步关键操作与常见问题解决方案。

weixin_29219539的博客 269

OFDM调制matlab仿真详细代码

MATLAB仿真代码 % ================================================== % 作者: 肆拾伍 % 时间:11/30 2019 % 版本:V3 % =================OFDM仿真参数说明:================ % % 子载波数 carrier_count ---200 % 总符号数 symbol_count ...

肆拾伍的博客 3万+

dataFrame存入到Hive

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

qq_43012693的博客 3137

接口调试必看:status显示canceled的3种常见原因及修复方法

本文深度解析了接口调试中status显示canceled的三种核心原因:网络层中断(如请求超时)、应用层逻辑主动取消(如请求竞态、组件卸载)以及用户交互与浏览器行为。文章提供了从诊断到修复的系统性方案,包括分析Network Timing、使用Axios CancelToken、优化请求策略与性能,帮助开发者从根本上解决这一常见问题。

bb456的博客 936

Spark DataFrame 写入HIve 出现HiveFileFormat`. It doesn't match the specified format `ParquetFileFormat`

场景 现在有一个需求,解析一个csv文件,然后写入hive已经存在的表中,就出现了这个错 org.apache.spark.sql.AnalysisException: The format of the existing table arcsoft_analysis.zz_table is `HiveFileFormat`. It doesn't match the specified fo...

lvwenyuan_1的博客 9767

NVIDIA Jetson Orin DLA架构解析与AI推理优化实践

深度学习加速器(DLA)作为专用AI推理芯片,通过固定功能架构实现卷积、池化等神经网络操作的高效能比处理。其核心原理在于硬件级优化计算单元与数据流,相比通用GPU可提升3-5倍能效。在边缘计算场景中,DLA与GPU的异构协同成为关键,特别适合自动驾驶感知、机器人视觉等实时性要求高的应用。NVIDIA Jetson Orin平台通过结构化稀疏技术,在ResNet50等模型上实现近2倍性能提升。开发实践中需注意算子支持、精度校准等关键点,结合TensorRT工具链可充分发挥DLA在低功耗场景的独特优势。

weixin_32999557的博客 397

Hermes V0.10.0:官方UI几乎无Bug版

如果你还在观望Hermes,现在可能是最好的入局时机。 因为网页端来了,门槛降到了最低。 如果你已经是Hermes用户,升级就对了。 因为0.9.0的更新,值得一试。

weixin_66295112的博客 2046

spark读取数据写入hive数据表

pyspark 从已有数据表读取数据写入目标hive表的代码模板

wangwangstone的博客 6565

【最全选型攻略-盘点篇】市面上有哪些靠谱的工业3D相机品牌?(双目、结构光、TOF、激光三角)

选工业3D相机,选最靠谱的品牌,选最Match你的产品,看这一篇就够了!

jiqishijueyingdi的博客 1万+

Spark SQL 1.3测试

Spark SQL 1.3 参考官方文档:Spark SQL and DataFrame Guide  概览介绍参考:平易近人、兼容并蓄——Spark SQL 1.3.0概览   DataFrame提供了一条联结所有主流数据源并自动转化为可并行处理格式的渠道,通过它Spark能取悦大数据生态链上的所有玩家,无论是善用R的数据科学家,惯用SQL的商业分析师,还是在意效率和实时性的统计工程师。 ...

weixin_34240657的博客 110

Allegro孔和线被做到器件里面如何解锁操作指导

在做PCB设计的时候,会遇到孔和线被做到器件的情况,当需要移动器件的时候,孔和线也会跟着移动。孔和线被做到器件里面如何解锁操作指导。

weixin_54787054的博客 1144

爬虫:一文掌握网站加密和混淆以及浏览器调试的技巧

面对加密和混淆技术的网站,传统的爬虫方法可能难以奏效。通过结合浏览器调试工具(如Puppeteer、Playwright)、代理工具(如Burp Suite、Fiddler)以及动态和静态分析技巧,可以深入理解网站的运行机制,绕过加密和混淆,实现有效的数据抓取。同时,务必注意合法合规,尊重目标网站的规则和用户的隐私,确保爬虫行为的正当性和可持续性。

数据知道的博客 9891

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

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

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

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

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

1.将DataFrame数据如何写入到Hive表中? 2.通过那个API实现创建spark临时表? 3.如何将DataFrame数据写入hive指定数据表的分区中? 从spark1.2 到spark1.3,spark SQL中的SchemaRDD变为了DataFrame,DataFrame相对于SchemaRDD有了较大改变,同时提供了更多好用且方便的API。 DataFrame将数据写入hive...

woaitingting1985的博客 6420

26. Spark DataFrame写入Hive Orc 分区表

26. Spark DataFrame写入Hive Orc 分区表 分区表建立过程不过多演示,只给出写入hive表的过程。 //方法一: addStgCompanyDF.write.partitionBy("dt").mode(SaveMode.Overwrite).orc("hdfs://XXXX/apps/hive/warehouse/XXXX.db/XXXXX/") //方法二: ...

元元的李树专栏 3013

PySaprk 将 DataFrame 数据保存为 Hive 分区表

PySaprk 将 DataFrame 数据保存为 Hive 分区表 创建 SparkSession from pyspark.sql import SparkSession spark = SparkSession.builder.enableHiveSupport().appName('test_app').getOrCreate() sc = spark.sparkContext hc =...

XnCSD的博客 7555

spark hive 写入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_42296571的博客 718

Spark3.4.0入门-连接Hive读写数据(DataFrame)

title: Spark3.4.0入门-连接Hive读写数据(DataFrame)description: 大数据spark学习imageSlimsticky: 1。

个人博客地址为http://elikhb.top/ 3288
上一篇: spark sql on hive安装问题解析
下一篇: spark1.3.0 on yarn 构建(hive0.12.0)
mach_learn
博客等级 码龄12年 34粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值