亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

pandas?dataframe寫入到hive方式

 更新時間:2023年08月21日 08:34:58   作者:taiguangxing  
這篇文章主要介紹了pandas?dataframe寫入到hive方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

pandas dataframe寫入hive表

關(guān)鍵流程主要分為兩步:

1.將pandas dataframe轉(zhuǎn)換為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 代表如果表中存在數(shù)據(jù),那么新數(shù)據(jù)會將原來的數(shù)據(jù)覆蓋,此外還有append等模式,詳細(xì)介紹如下:
        * `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表的過程。

如何把dataframe直接保存到hive表中?

有多種方式把一個dataframe保存到hive表中:

1.直接把dataframe的內(nèi)容寫入到目標(biāo)hive表

df.write().mode("overwrite").saveAsTable("tableName");
或
df.select(df.col("col1"),df.col("col2")) .write().mode("overwrite").saveAsTable("schemaName.tableName");
或
df.write().mode(SaveMode.Overwrite).saveAsTable("dbName.tableName");

2.注冊一張臨時表,再通過sql語句插入到目標(biāo)表

df.createOrReplaceTempView("$tempTableName")
spark.sql("insert into table dbName.$hive_table_name PARTITION($partition_column) select * from $tempTableName")

注意:

第2種方式可以指定寫入的分區(qū),而臨時表會在任務(wù)完成時自動清除,但最好是在不使用時主動清除掉。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中類似于jquery的pyquery庫用法分析

    Python中類似于jquery的pyquery庫用法分析

    這篇文章主要介紹了Python中類似于jquery的pyquery庫用法,結(jié)合實例形式分析了pyquery庫的概念、原理、使用方法及操作技巧,需要的朋友可以參考下
    2019-12-12
  • 對python 生成拼接xml報文的示例詳解

    對python 生成拼接xml報文的示例詳解

    今天小編就為大家分享一篇對python 生成拼接xml報文的示例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 在python3中pyqt5和mayavi不兼容問題的解決方法

    在python3中pyqt5和mayavi不兼容問題的解決方法

    今天小編就為大家分享一篇在python3中pyqt5和mayavi不兼容問題的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python內(nèi)打印變量之%和f的實例

    python內(nèi)打印變量之%和f的實例

    今天小編就為大家分享一篇python內(nèi)打印變量之%和f的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 利用LyScript實現(xiàn)應(yīng)用層鉤子掃描器

    利用LyScript實現(xiàn)應(yīng)用層鉤子掃描器

    Capstone 是一個輕量級的多平臺、多架構(gòu)的反匯編框架。本篇文章將運用LyScript插件結(jié)合Capstone反匯編引擎實現(xiàn)一個鉤子掃描器,感興趣的可以了解一下
    2022-08-08
  • 用Python將IP地址在整型和字符串之間輕松轉(zhuǎn)換

    用Python將IP地址在整型和字符串之間輕松轉(zhuǎn)換

    這篇文章主要給大家介紹了利用Python將IP在整型和字符串之間輕松轉(zhuǎn)換的相關(guān)資料,文中還跟大家分享了Python下利用正則表達(dá)式來匹配校驗一個字符串是否為ip地址的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • 利用Python實現(xiàn)簡易計算器的示例代碼

    利用Python實現(xiàn)簡易計算器的示例代碼

    最近學(xué)習(xí)了字符串,運算符,條件語句,循環(huán)語句,我在想可以用我最近學(xué)的東西做什么? 看到運算我就想到了可以做一個簡易的計算器,感興趣的可以了解一下
    2022-11-11
  • Python技巧之四種多線程應(yīng)用分享

    Python技巧之四種多線程應(yīng)用分享

    這篇文章主要介紹了Python中多線程的所有方式,包括使用threading模塊、使用concurrent.futures模塊、使用multiprocessing模塊以及使用asyncio模塊,希望對大家有所幫助
    2023-05-05
  • Python連接Redis庫常見操作全面詳解

    Python連接Redis庫常見操作全面詳解

    本文將介紹如何在Python中進(jìn)行Redis操作,包括連接Redis、數(shù)據(jù)存儲、數(shù)據(jù)檢索和其他常見操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 用Python實現(xiàn)石頭剪刀布游戲

    用Python實現(xiàn)石頭剪刀布游戲

    大家好,本篇文章主要講的是用Python實現(xiàn)石頭剪刀布游戲,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01

最新評論