pandas dataframe 写入到hive_pandas写入hive-程序员宅基地

技术标签: hive  spark  数据仓库  大数据  

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的完整代码:

import pandas as pd
import numpy as np
from pyspark import SparkContext,SparkConf
from pyspark.sql import HiveContext,SparkSession
from pyspark.sql import SQLContext

pd_df = pd.DataFrame(np.random.randint(0,10,(3,4)),columns=['a','b','c'])

spark = SparkSession.builder.appName('pd_2_hive').master('local').enableHiveSupport().getOrCreate()
spark_df = spark.createDataFrame(pd_df)

#spark dataframe 有接口可以直接写入到hive
spark_df.write.mode('overwrite').format("hive").saveAsTable("dbname.tablename")
'''
其中 overwrite 代表如果表中存在数据,那么新数据会将原来的数据覆盖,此外还有append等模式,详细介绍如下:
        * `append`: Append contents of this :class:`DataFrame` to existing data.
        * `overwrite`: Overwrite existing data.
        * `error` or `errorifexists`: Throw an exception if data already exists.
        * `ignore`: Silently ignore this operation if data already exists.
'''


#此外还可以将spark_df 注册为临时表,之后通过sql的方式写到hive里
spark_df.registerTempTable('tmp_table')
tmp_sql = '''create table dbname.tablename as select * from tmp_table'''
spark.sql(tmp_sql)
spark.stop()

至此,便完成了pandas dataframe 写入到 hive表的过程。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39709476/article/details/108266752

智能推荐

ubuntu编译 linphone sdk android源码下载_linphone ubuntu-程序员宅基地

文章浏览阅读754次。下载android ndk。_linphone ubuntu

mysql防止数据重复数据_推荐MySQL数据库中避免写入重复数据的4种方式-程序员宅基地

文章浏览阅读2.5k次。我们在MySQL数据库进行表设计时,为了防止表中存在重复数据,我们通常会设置指定的字段为主键索引(PRIMARY KEY)或者唯一索引(UNIQUE KEY)索引来保证数据的唯一性。如果我们设置了唯一索引,当在写入重复数据时,SQL 语句将无法执行成功,并抛出错误。因此,我们通常在进行 MySQL数据库写入数据操作时,会考虑如何避免数据的重复写入或者因重复数据写入导致运行出错,抛出异常。在..._mysql中如何设置某些特定内容不写入

技术杂记 【JSONArray 按指定字段排序,升序和倒序】-程序员宅基地

文章浏览阅读7.1k次。第一种根据自定义的字段去排序,利用sort方法 Random random = new Random(); JSONArray result = new JSONArray(); for(int i = 0 ; i < 10 ; i++){ JSONObject obj = new JSONObject(); ...

pheatmap:绘制聚类热图的函数_pheatmap基于kmeans绘制热图-程序员宅基地

文章浏览阅读342次,点赞4次,收藏6次。该函数还允许使用 kmeans 聚类聚合行。如果行数太大,以至于 R 无法再处理其分层聚类,大约超过 1000 行,则建议这样做。与其单独显示所有行,不如提前对行进行聚类,并仅显示聚类中心。可以通过参数kmeans_k调整集群的数量。来源:https://www.rdocumentation.org/packages/pheatmap/versions/1.0.12/topics/pheatmap。一个绘制聚类热图的函数,可以更好地控制一些图形参数,如单元大小等。Examples 例子。_pheatmap基于kmeans绘制热图

html div四边阴影效果-程序员宅基地

文章浏览阅读369次。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml..._div四周阴影效果

Java 通过反射获取实体类对应的注释_java获取实体类属性注解-程序员宅基地

文章浏览阅读1.7k次。Java 通过反射获取实体类对应的注释 _java获取实体类属性注解

随便推点

yolov3模型转换caffes实践之安装caffe-程序员宅基地

文章浏览阅读573次。记录一下:yolov3转换caffe-虚拟机安装caffe1. 系统环境:ubuntu16.04第一步:下载 caffe ,可以通过CSDN下载,需要积分,(花钱买时间)第二步: ubuntu环境准备这个地方写了个shell(后面再搭环境就简单了):sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-de...

【Qt】数据类型和有用的数据操作类_qset初始化-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏35次。除了C++提供的基本数据类型之外,Qt还提供了了对开发者而言非常有用的多种数据类型。Qt提供的数据类型分为基本数据类型和类形态的数据类型。 基本数据类型Qt支持多个平台,创建的应用程序需要在多种平台上都具有相同大小的数据类型。为了能精确指定数据类型的大小,Qt提供了一下的基本数据类型:Qt基本数据类型 类型 大小 说明 bool 8位 true/fal..._qset初始化

【论文简述】DSC-MVSNet: attention aware cost volume regularization based ondepthwise separable(CIS 2023)-程序员宅基地

文章浏览阅读641次。【论文简述】DSC-MVSNet: attention aware cost volume regularization based ondepthwise separable(CIS 2023)_dsc-mvsnet

Elasticsearch 安装的时候,Unsupported major.minor version 51.0问题的解决-程序员宅基地

文章浏览阅读170次。Elasticsearch 安装的时候,Unsupported major.minor version 51.0问题的解决

关于笔记本电脑飞行堡垒风扇不能打开的解决办法_飞行堡垒7风扇模式怎么开-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏3次。关于笔记本电脑飞行堡垒风扇不能打开的解决办法_飞行堡垒7风扇模式怎么开

设置笔记本电脑插入USB鼠标时,自动禁用触摸板_有usb鼠标时,则自动禁用触摸板-程序员宅基地

文章浏览阅读3.6k次。win7/8系统:1、首先到网上下载一个Synaptics触摸板驱动并安装,安装完后重启计算机;(已安装Synaptics触摸板驱动忽略此步骤)2、然后WIN+R,打开运行对话框,输入“regedit”,回车打开注册表→依次展开HKEY_CURRENT_USER/Software/Synaptics/SynTPEnh。3、然后鼠标右键选择“新建DWORD(32位-值)”命名为DisableIntPDFeature,修改值为3,再右键→新建DWORD(32位-值) 命名为ShowdisableIco_有usb鼠标时,则自动禁用触摸板

推荐文章

热门文章

相关标签