Pyspark的dataframe写入hive表

2023-11-10

 文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。

 相关文章:

  1. 协同过滤推荐算法和基于内容推荐算法的区别?
  2. 推荐算法的分类
  3. MMOE原理介绍

文章目录

1. 创建pyspark的DataFrame

2.hive表的结构

3.pyspark的DSL风格写入Hive表


1. 创建pyspark的DataFrame

import pandas as pd
temp_dict ={
    'id':[1,2,3,4,9],
    'date':['2022-05-01','2022-05-02','2022-05-03','2022-05-04','2022-05-05'],
    'vol':[68,45,899,45,32],
    'need':[-4,18,66,18,65],
    'need2':[-4,19,66,18,65]
}
tempdf = pd.DataFrame(temp_dict)
df = spark.createDataFrame(tempdf)

2.hive表的结构

CREATE TABLE if NOT EXISTS tmp.table_5_15 (
  id int comment 'id',
  date string comment 'date',
  vol INT comment 'vol',
  need int comment 'need',
  nee2 int comment 'need2'
)
partitioned by
(dt string COMMENT '分区字段')stored as parquettblproperties('parquet.compression'='SNAPPY'

3.pyspark的DSL风格写入Hive表

spark.sql("set hive.exec.dynamic.partition.mode = nonstrict")
spark.sql("set hive.exec.dynamic.partition=true")
df.write.format("Hive") \
        .mode('overwrite') \
        .partitionBy("dt") \
        .option("header", "false") \
        .option("delimiter", "\t") \
        .saveAsTable("tmp.table_5_15")

pySpark直接存储hive,这里的"dt"是分区字段
mode分为"overwrite"'和”append"
"append”是向表中添加数据
"overwrite"是重新建表再写,意味着会删除原本的所有数据,而不仅仅只删除当前分区的数据

4.DSL风格写入hive表不删除 其他分区

configs = [
    ('spark.app.name', 'algo2_spark2_demo'),
    ('spark.driver.memory', '4g'),
    ('spark.executor.memory', '4g'),
    ('spark.executor.instances', '2'),
    ('spark.executor.cores', '2'),
    ('spark.kryoserializer.buffer.max','128m'),
    ("hive.exec.dynamic.partition.mode", "nonstrict") ,
    ("spark.sql.sources.partitionOverwriteMode", "dynamic")
]

conf.setAll(configs)
sc = SparkContext.getOrCreate(conf=conf)
spark = HiveContext(sc)
df.write.insertInto("tmp.table_5_15", overwrite=True)

这个方式插入数据不会影响其他分区。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pyspark的dataframe写入hive表 的相关文章

随机推荐

  • 《C++ Primer》学习笔记(十二):动态内存

    C Primer 学习笔记 十二 动态内存 动态内存与智能指针 shared ptr 内存耗尽 shared ptr与new结合使用 智能指针和异常 unique ptr weak ptr 动态数组 allocator类 使用标准库设计文本
  • 拉普拉斯近似算法小结

    序 在机器学习中 经常遇到需要对复杂分布进行近似的情况 目前常用的近似算法主要有三种 拉普拉斯近似 变分近似 Gibbs采样 其中拉普拉斯近似算法是用一个高斯分布来近似原始分布 当原始分布比较简单的时候效果会较好 目标 用一个高斯分布近似一
  • 2024届暑期实习实录(阿里云大数据研发平台)

    1 项目介绍 介绍一下你觉得有挑战的项目 1 项目的痛点需求 配置变更的痛点 你做的目的是什么 思考方向 业务背景 用户需求 产品发展 产品现有局限问题 2 项目 技术 的难点设计 思考方向 业务抽象 技术调研 架构梳理 3 有无涉及多线程
  • 使用IDEA创建SpringBoot项目

    参考 慕课网 廖师兄 两小时学会Springboot http www imooc com learn 767 1 打开IDEA 创建新项目 选择Spring Initializr 2 输入Artifact 3 勾选Web 4 点击fini
  • SpringFramework事件与监听机制(事件)

    SpringBoot版本 2 0 2 RELEASE SpringFramework版本 RELEASE 文章目录 SpringFramework事件与监听机制 SpringFramework的事件 SpringFramework与Spri
  • 爬取地铁站数据,计算两点距离

    爬取地铁站数据 计算两点距离 爬取地铁站数据代码 计算两点距离 效果图 爬取地铁站数据代码 import json import requests from bs4 import BeautifulSoup headers user age
  • [网络安全自学篇] 八十三.WHUCTF之CSS注入、越权、csrf-token窃取及XSS总结

    这是作者网络安全自学教程系列 主要是关于安全工具和实践操作的在线笔记 特分享出来与博友们学习 希望您喜欢 一起进步 前文分享了WHUCTF隐写和逆向题目 包括文字解密 图片解密 佛语解码 冰蝎流量分析 逆向分析 这篇文章将详细讲解一道CSS
  • D3D9Texture::_loadNormTex

    D3D9Texture loadNormTex D3D9Texture loadImpl
  • 消息中间件---RabbitMQ

    目录 1 消息队列 1 1 MQ相关概念 1 1 1 什么是MQ 1 1 2 MQ的功能 1 2 RabbitMQ 1 2 1 概念 1 2 2 四大核心概念 1 2 3 RabbitMQ核心部分 1 2 4 名词介绍 2 Work Que
  • B. Permutation

    Problem B Codeforces include
  • pandas中对列进行上下平移(shift)

    在利用Python进行数据操作时 有时需要对数据某列数据进行上下平移 比如对某一列进行错位加减 pandas里的groupby和shift两个函数就能轻松实现上述操作 df pd DataFrame name a a a b b c val
  • 新系统如何确定性能测试目标

    前提 新系统上线没有明确数字对比 性能需求非可度量 完成目标 1 服务器的某些资源已耗尽 如CPU 内存 句柄 数据库存在大量slow query 2 需求证明系统是可水平扩展的 即增加服务器配置系统TPS 吞吐量 能上去
  • 回忆,这一年(华师918血泪贴)

    回忆 这一年 华师918血泪贴 考研前夕 回想一年前 当时这个时候我应该刚通过了部门的实习答辩 拿了不错的评分 不出意外就等着签三方了 打算骑牛找马看看秋招的机会 但是双非出身的我 一直希望摆脱那种囚笼困境 需要付出比常人更多才能得到人家脱
  • 【五一创作】跑alpaca-lora语言模型的常见问题(心得)

    训练部署alpaca lora语言模型常见问题 Alpaca Lora是一个开源的自然语言处理框架 使用深度学习技术构建了一个端到端的语言模型 在训练和部署alpaca lora语言模型时 可能会遇到一些常见问题 本文将介绍一些这些问题及其
  • 计算机应用基础绩点3.0,学分绩点和期末考说明(华师).doc

    学分绩点和期末考说明 华师 doc 由会员分享 提供在线免费全文阅读可下载 此文档格式为doc 更多相关 学分绩点和期末考说明 华师 doc 文档请在天天文库搜索 1 关于学分绩点的一些说明首先 我们先来了解下几个概念吧1 学分 是用于计算
  • 【CANN训练营】Ascend目标检测与识别-定制自己的AI应用

    参考 https gitee com ascend samples tree master cplusplus level3 application 1 cv detect and classify 1 准备工作 cd samples cp
  • python画易烊千玺_Python02

    class A object def init self 私有 在变量名称前加上 私有 不可继承 不可在外部调用 但是可以在内部调用 self a 1000 约定使用 来表示私有 self def B self print self a A
  • python(数据分析)第4天:绘制网格

    plt grid import matplotlib pyplot as plt import random import matplotlib from matplotlib import cycler from matplotlib f
  • 解决ssh_exchange_identification: read: Connection reset by peer

    解决ssh exchange identification read Connection reset by peer linux远程免密登陆出现上述报错 1 先在远程机器上 vi etc hosts allow 在里面写入 允许所有ip连
  • Pyspark的dataframe写入hive表

    文章最前 我是Octopus 这个名字来源于我的中文名 章鱼 我热爱编程 热爱算法 热爱开源 所有源码在我的个人github 这博客是记录我学习的点点滴滴 如果您对 Python Java AI 算法有兴趣 可以关注我的动态 一起学习 共同