pyspark-不同類型存儲讀寫

2021-01-09 草汀

背景

結構化數據與非結構化數據的轉換不同類型存儲支持不同類型索引支持前置

版本信息正確各組件對應的python語言工具庫安裝就緒,本文基於如下版本,調試正常

核心

sc.read.format("XXXX").options(XXXX).load(XXXX)dataframe.write.format("XXXX").mode().save()

Spark從mysql讀取數據

初始化spark的session: SparkSession.builder.config(conf=self.conf).config("spark.debug.maxToStringFields", "500").getOrCreate()創建mysql到spark的連結器:connector_url = 'jdbc:mysql://{0}:{1}/{2}'.format(ip,port,db)connector = self.spark.read.format("jdbc").option("url", connector_url).option("user", username).option("password", password)

Spark寫數據到mysql

table_dataframe.write.format("jdbc").mode('ignore').option("url", self.connector_url).option("dbtable", table_name).option("user", self.username).option("password", self.password).save()

注意事項

(1) 存儲模式的設置

`append`: 追加記錄到mysql,前提條件: 列名及數據類型保持一致`overwrite`: 覆蓋寫,清除原來表中已經存在的記錄.`error`或 `errorifexists`: 如果記錄已經存在直接拋出異常`ignore`: 如果表中數據已經存在直接跳過;如果表不存在,會自動創建表並寫入數據具體通過df.write.mode("XXX")進行設置(2)在非ignore模式下手動創建表,需要注意列名稱和數據類型;(額外注意spark中的String類型對應mysql的text類型)

Spark從hdfs/本地讀取數據

讀文本類文件:本地: sc.textFile('file:///tmp/src.txt') # 3條線

hdfs:sc.textFile('hdfs://{hadoop-hostname}:{port}/tmp/src.txt')

其他類型文件:sqlcontext.read.format("com.databricks.spark.csv").options(header="true", inferschema="true").load("hdfs://{hadoop-hostname}:{port}/tmp/movies.csv")

Spark寫數據到hdfs/本地

指定文件類型後寫文件:data_frame.write.format("json").save("hdfs://{hadoop-hostname}:{port}/tmp/paper.json")Spark從mongo讀取數據

sc.read.format("com.mongodb.spark.sql").options(uri="mongodb://{IP}:{Port}", database="spark",collection="waiting").load()Spark寫數據到mongo

指定寫入模式及格式com.mongodb.spark.sql

data_frame.write.format("com.mongodb.spark.sql").mode("append").save()

Spark從ES讀取數據

es_rdd = sc.newAPIHadoopRDD("org.elasticsearch.hadoop.mr.EsInputFormat", "org.apache.hadoop.io.NullWritable","org.elasticsearch.hadoop.mr.LinkedMapWritable",conf={"es.resource": "tspark/pm_value", "es.nodes": "XXXX"})# conf以json格式傳入es.nodes(ES的IP:port)、es.resource(ES的index/type)信息

Spark寫數據到ES

bulk(es, doc_list_w) # 注意doc_list_w中doc需要帶_index、_type、_source欄位信息

相關焦點

  • 如何使用PySpark來利用機器學習模型對流數據進行預測?
    它將不時地將正在運行的應用程式的狀態保存在任何可靠的存儲介質(如HDFS)上。但是,它比緩存慢,靈活性也更差。在擁有流數據時可以使用檢查點。轉換結果取決於先前的轉換結果,並且需要保存以供使用。此外,我們還存儲檢查點元數據信息,例如用於創建流數據的配置以及一系列DStream操作的結果等。
  • 如何在Apache Pyspark中運行Scikit-learn模型
    如果您已經準備好了機器學習模型,則可以直接跳到「 pyspark wrapper」部分,也可以通過以下步驟創建一個簡單的scikit learn機器學習模型。scikit learn機器學習模型:我們使用Python創建一個簡單的機器學習模型:將機器學習模型保存到磁碟pyspark wrapper讓我們考慮一下pyspark dataframe (df)中提供的運行預測所需的特徵創建一個python函數,該函數接受這四個特性作為參數,並將預測的分數作為輸出進行返回
  • PySpark源碼解析,用Python調用高效Scala接口,搞定大規模數據分析
    _gateway.jvm在 launch_gateway (python/pyspark/java_gateway.py) 中,首先啟動 JVM 進程:SPARK_HOME=_find_spark_home()#LaunchthePy4jgatewayusingSpark'sruncommandsothatwepickupthe
  • RFID射頻讀寫器軟硬體系統設計
    電子標籤與讀寫器之間,通過禍合元件實現射頻信號的空間(無接觸)禍合;在藕合通道內,根據時序關係,實現能量的傳遞和數據的交換,然後由後臺計算機對讀寫器讀取的數據進行存儲以及管理分析等操作trio R FID系統基本組成如圖I所示。  RFID 系統基本組成
  • 一鍵解碼複製,支持類型齊全,NFC Reader藍牙讀寫器
    所以我這次弄來了NFC Reader 藍牙讀寫器,這是一款可以複製門禁卡,破解加密門禁卡,還能將卡模擬到手機或者手環的設備。NFC Reader 藍牙讀寫器的包裝盒體積小巧,包裝盒的設計倒是頗為的簡約。
  • 由於不同類型PLC的助記符、指令格式、參數等表示方法不同
    由於不同類型PLC的助記符、指令格式、參數等表示方法不同,它們的指令表示也不同,以三菱FX系列梯形圖語言為例,對這種程式語言作了簡要介紹。它由繼電器邏輯指令、定時器和計數器指令、比較指令、算術指令、邏輯運算指令、移位指令和轉移指令等幾個部分組成,這裡只介紹一些常用的指令。
  • rfid讀寫器的組成部分包括什麼_rfid讀寫器的主要功能
    RFID讀寫器有固定式的和手持式的,手持RFID讀寫器包含有低頻,高頻,超高頻,有源等。   rfid讀寫器的組成部分包括什麼   典型的RFID讀寫器終端一般由天線、射頻接口模塊和邏輯控制模塊三部分構成。
  • 解密超高頻RFID讀寫器的工作原理
    超高頻RFID讀寫器的特點1、多標籤讀取,標籤存儲數據容量大 :通過超高頻RFID讀寫器可以一次識讀多個電子標籤。與條形碼相比,RFID 標籤存儲容量大,可以存放詳細描述物品的信息。2、穿透識別:粘貼有RFID 標籤的物品放在紙張、木材和塑料等非金屬或非透明的材質也能被超高頻RFID讀寫器識別出來。
  • 雲存儲技術的原理與架構解析
    ,從而在存儲容量上得以從單設備PB級橫向擴展至數十、數百PB,由於雲存儲系統中的各節點能夠並行提供讀寫訪問服務,系統整體性能隨著業務節點的增加而獲得同步提升。  訪問接口層是業務應用和雲存儲平臺之間的一個橋梁,提供應用服務所需要調用的函數接口,通常雲存儲系統會提供一套專用的API或客戶端軟體,業務應用軟體直接調用API或者使用雲存儲系統客戶端軟體對雲存儲系統進行讀寫訪問,往往會獲得更優的訪問效率,但由於一個雲存儲系統往往需要支持多種不同的業務系統,而很多業務系統只能採用特定的訪問接口,例如塊接口或者POSIX接口,因此一個優秀的雲存儲系統,
  • 你知道rfid讀寫器怎麼選嗎?
    RFID系統由電子標籤、RFID讀寫器、RFID天線組成。在選擇RFID讀寫器的硬體設備時,會對RFID讀寫器廠家哪家好、哪款設備比較適合等等這類的問題產生困惑,選擇時,可以考慮以下幾點。 1、結合使用場景 選擇時應該結合具體使用場景,選擇合適的產品。
  • 射頻讀寫系統的構成和基本原理
    LCD可以顯示各種圖形和漢字;串行存儲器用來存儲點陣字庫、圖形庫等;USB晶片使得該讀卡器省去了串口和電源供電埠,可以通過USB接口和PC管理軟體通信。該讀卡器使用方便、成本低,電路運行穩定,可以應用到各種場合。本文引用地址:http://www.eepw.com.cn/article/155009.htm1 射頻
  • STM32F0單片機入門——用SPI HAL庫讀寫W25Q128
    1.W25Q128 介紹當我們有比較多的數據需要掉電存儲時,上一篇文章所介紹的 24C02 (256個字節EEPROM)就不夠了。此時我們會用到另外一種類型的存儲器,即 Flash。比如具有 SPI 接口的 W25Q128。
  • 基於MF RC632射頻識別讀寫器晶片的專用讀卡器設計及實現
    而通過Mifare One卡存儲的數據均不大,只佔用一塊存儲區,換句話說,Mifare One卡的數據存儲區可以存儲48次,當超過48次時就從前面覆蓋數據。所以,在Mifare One卡中存儲的永遠是最後經過最近48個基站的信息。在訓練結束後,就可以通過主站將各個基站的數據收集起來以評估測試者的信息。
  • NFC讀寫加密卡方法!(附:代碼+方法)
    工具是讀寫器硬體設備ACR122U以及配套的用於讀寫的PC軟體。ACR122U NFC讀寫器是一款基於13.56 MHz非接觸(RFID)技術開發出來的連機非接觸式智慧卡讀寫器。它符合ISO/IEC18092近場通信(NFC)標準,支持Mifare®卡、ISO 14443 A類和B類卡、以及全部四種NFC標籤。
  • ...希捷,多讀寫臂,硬碟,Multi Actuator ——快科技(驅動之家旗下...
    SSD固態硬碟各種技術層出不窮,HDD機械硬碟則似乎廉頗老矣,無論容量還是性能都提升極其緩慢,各種新的革命性存儲技術也尚需時日。今天,希捷正式發布了最新的「多讀寫臂」(Multi Actuator)技術,可將其下一代應用於超大規模數據中心的硬碟的數據性能直接提升一倍
  • 如何用Pandas庫實現MySQL資料庫的讀寫?
    本次分享將介紹如何在Python中使用Pandas庫實現MySQL資料庫的讀寫。首先我們需要了解點ORM方面的知識。可以使用pip命令安裝SQLAlchemy模塊:  '資料庫類型+資料庫驅動名稱://用戶名:口令@機器地址:埠號/資料庫名'  Pandas讀寫MySQL資料庫  我們需要以下三個庫來實現Pandas讀寫MySQL資料庫:  pandas  sqlalchemy
  • rfid應用案例:晨控智能RFID讀寫器在發動機裝配線上的應用
    (1)電子標籤初始化 ①工人在0工位PC機中輸入要生產的發動機型號和產量信息; ②讀寫器寫入電子標籤ID號信息,完成電子標籤初始化; ③寫入ID信息的電子標籤與發動機託盤一起上線。 (2)讀寫電子標籤信息 ①待裝配的發動機輸送至裝配工位附近,限位開關自動卡住託盤,讀寫器獲得數據信息傳輸到MES; ②根據每個電子標籤的內容,工位PC顯示該工位應安裝部件的名稱,型號,配合機械手或工人進行正確操作; ③完成作業後,將完成的作業信息反饋給MES。
  • 6分鐘徹底掌握存儲和備份區別
    雲存儲目前在空間數據冗餘保存方面,一般也有做數據垮地區的冗餘保存,防止災難的發生。備份在此基礎上,進一步封裝邏輯,對數據在不同的地方,可以訂製不同的複製策略。較重要的數據,通常可以在1個地方進行冗餘,比如用戶產生的日誌,圖片等可以冗餘1份;對於更關鍵的數據,如用戶註冊數據,數據存儲索引數據,交易數據,金融系統相關數據等,必要時得多地冗餘。
  • 蠶絲蛋白存儲器開啟信息存儲新時代
    本報記者 沈則瑾隨著科技發展與文明進步,人類活動越來越依賴於信息,相應產生的信息量正呈指數級增長,當前半導體存儲技術越來越難滿足日益增長的信息存儲需求。生命科學與半導體技術的融合,為信息存儲帶來了新思路,各種基於生物介質的存儲技術應運而生。然而,這些存儲技術大多通過不同分子結構對外部信息數位化編碼,信息一旦寫入便無法修改。
  • 電子標籤存儲器主要分為哪些類型?
    電子標籤存儲器主要分為以下類型:        ①只讀標籤存儲器。電子標籤內部只有隻讀存儲器(Read Only Memory,ROM)。  ②一次寫入只讀標籤存儲器。電子標籤內部只有ROM和隨機存儲器(Random Access Memory,RAM)。