1. 程式人生 > >Spark 之 讀寫 csv檔案

Spark 之 讀寫 csv檔案

轉自:https://www.iteblog.com/archives/1380.html

CSV格式的檔案也稱為逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號。在本文中的CSV格式的資料就不是簡單的逗號分割的),其檔案以純文字形式存表格資料(數字和文字)。CSV檔案由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符是其它字元或字串,最常見的是逗號或製表符。通常,所有記錄都有完全相同的欄位序列。

  本篇文章將介紹如何使用Spark 1.3+的外部資料來源介面來自定義CSV輸入格式的檔案解析器。這個外部資料來源介面是由databricks公司開發並開源的(地址:https://github.com/databricks/spark-csv),通過這個類庫我們可以在

SparkSQL中解析並查詢CSV中的資料。因為用到了Spark的外部資料來源介面,所以我們需要在Spark 1.3+上面使用。在使用之前,我們需要引入以下的依賴:

<dependency> <groupId>com.databricks</groupId> <artifactId>spark-csv_2.10</artifactId> <version>1.0.3</version> </dependency>

目前spark-csv_2.10的最新版就是1.0.3。如果我們想在Spark shell裡面使用,我們可以在--jars

選項裡面加入這個依賴,如下:

[[email protected] $] bin/spark-shell --packages com.databricks:spark-csv_2.10:1.0.3

如果想及時瞭解Spark、Hadoop或者Hbase相關的文章,歡迎關注微信公共帳號:iteblog_hadoop

  和《Spark SQL整合PostgreSQL》文章中用到的load函式類似,在使用CSV類庫的時候,我們需要在options中傳入以下幾個選項:

  1、path:看名字就知道,這個就是我們需要解析的CSV檔案的路徑,路徑支援萬用字元;
  2、header

:預設值是false。我們知道,CSV檔案第一行一般是解釋各個列的含義的名稱,如果我們不需要載入這一行,我們可以將這個選項設定為true;
  3、delimiter:預設情況下,CSV是使用英文逗號分隔的,如果不是這個分隔,我們就可以設定這個選項。
  4、quote:預設情況下的引號是'"',我們可以通過設定這個選項來支援別的引號。
  5、mode:解析的模式。預設值是PERMISSIVE,支援的選項有
    (1)、PERMISSIVE:嘗試解析所有的行,nulls are inserted for missing tokens and extra tokens are ignored.
    (2)、DROPMALFORMED:drops lines which have fewer or more tokens than expected
    (3)、FAILFAST: aborts with a RuntimeException if encounters any malformed line

如何使用

1、在Spark SQL中使用

  我們可以通過註冊臨時表,然後使用純SQL方式去查詢CSV檔案:

CREATE TABLE cars USING com.databricks.spark.csv OPTIONS (path "cars.csv", header "true")

我們還可以在DDL中指定列的名字和型別,如下:

CREATE TABLE cars (yearMade double, carMake string, carModel string, comments string, blank string) USING com.databricks.spark.csv OPTIONS (path "cars.csv", header "true")

2、通過Scala方式

  推薦的方式是通過呼叫SQLContextload/save函式來載入CSV資料:

import org.apache.spark.sql.SQLContext val sqlContext = new SQLContext(sc) val df = sqlContext.load(

相關推薦

Spark csv檔案

轉自:https://www.iteblog.com/archives/1380.html CSV格式的檔案也稱為逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號。在本文中的CSV格式的資料就

sparkcsv檔案

如果是spark1.6.0請新增maven: <dependency> <groupId>com.databricks</groupId> <artifactId>s

pandas學習concat合併及CSV檔案

讀取CSV檔案 讀取中文的CSV檔案中有中文,用“UTF-8”會出現亂碼問題,解決: import pandas as pd import numpy as np data=pd.read_csv('C:/Users/elenawang/Desktop/

STL 使用ofstream + ifstream csv檔案

csv檔案,每行的資料是用逗號分隔的,讀寫csv檔案的示例程式碼如下: #include "stdafx.h" #include <iostream> #include <string> #include <vector> #include <fst

pythoncsv檔案方法總結

python提供了大量的庫,可以非常方便的進行各種操作,現在把python中實現讀寫csv檔案的方法使用程式的方式呈現出來。 1、使用csv讀寫csv檔案方法總結 reader()函式是一個閱讀器把閱讀的CSV檔案每一行以一個列表表示出來以至於你可以用for迴圈來遍歷他 讀檔案的時候,開啟檔

Python.csv檔案

# encoding: UTF-8 import csv # 讀取csv檔案 stocks_list = [] #方式一 # file = open(u'../Output.csv', u"r") # data = csv.reader(file) # 返回的是迭代型別 #方式二 with

python學習筆記excel檔案

python 處理excel資料的兩種方式: 首選pandas庫裡pandas.read_excel函式,相對比較簡單 其次使用xlrd庫,感覺沒有pandas好用 如何寫excel,後續更新 #coding=utf-8 """ Created on

Python進階Excel檔案

    讀寫Excel檔案是日常工作中常用的功能,學會編寫簡單的Excel資料處理工具,可以從重複性的Excel編輯工作中解脫出來,本文描述了Window環境下如何讀寫Excel檔案。     讀寫Excel用到了xlrd、xlwt、xluntils和pyExceler

支援各種特殊字元的 CSV 解析類 (.net 實現)(C#CSV檔案)

CSV是一種十分簡潔的資料結構,在DOTNET平臺實際使用中發現微軟官方並沒有提供預設的方法,而網上好多例子發現實現並不嚴謹甚至一些含有明顯錯誤,所以後面自己實現了一個讀寫工具類,這裡發出來希望方便後面朋友(難免還是會有考慮不到的地方,可隨時郵件聯絡) 使用該工具可對csv檔案進行讀寫(甚至不用去了解CSV的

python按鈕csv檔案

from Tkinter import * import cv2 import matplotlib.pyplot as plt import matplotlib.image as mpimg import os import shutil import csv file

(java筆記)javaCSV檔案的方法

CSV檔案 逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其檔案以純文字形式儲存表格資料(數字和文字)。純文字意味著該檔案是一個字元序列,不含必須像二進位制數字那樣被解讀的資料。CSV檔案由任意數目的記錄組成,記

【C++】CSV檔案

新建CSV檔案:建txt——另存(UTF-8)——字尾.csv CSVparser.hpp #ifndef _CSVPARSER_HPP_ # define _CSVPARSER_HPP_ # include <stdexcept>

pySparkCSV檔案、查重並寫入CSV檔案

前段時間在研究 pySpark 資料處理,深刻地感受到spark的極大魅力。自己是一個初學者,這篇部落格也只是簡單的完成了幾個簡單的工作任務,哈哈@@不說了上程式碼:from pyspark import SparkConf,SparkContext import csv

javaCSV檔案的兩種方法

BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "GBK")) ;// 附加 上述程式碼片段作用: 轉碼 逗號分隔值(Com

python資料儲存系列教程——python(pandas)csv檔案

全棧工程師開發手冊 (作者:欒鵬) CSV檔案的規範 1、使用回車換行(兩個字元)作為行分隔符,最後一行資料可以沒有這兩個字元。 2、標題行是否需要,要雙方顯示約定 3、每行記錄的欄位數要相同,使用逗號分隔。逗號是預設使用的值

Spark WordCount hdfs檔案 (read file from hadoop hdfs and write output to hdfs)

create a scala project and a WordCount class as follow: package com.qiurc.test import org.apache.spark._ import SparkContext._ o

python csv檔案

1. 將DataFrame資料寫入csv (1)用 csv包一行一行的寫入   import csv #python2可以用file替代open with open("test.csv","w") as csvfile:      writer =

openCSVCSV檔案

        openCSV是一款簡單的用於解析CSV檔案的java類庫,它封裝了CSV格式檔案的讀寫操作,可將檔案與java物件進行自動對映,自定義分隔符,使用轉義符等。 在使用時有幾點需要注意下:         1、       生成的csv檔案用EXCEL開啟時,

大資料-05-SparkHBase資料

準備工作一:建立一個HBase表 這裡依然是以student表為例進行演示。這裡假設你已經成功安裝了HBase資料庫,如果你還沒有安裝,可以參考大資料-04-Hbase入門,進行安裝,安裝好以後,不要建立資料庫和表,只要跟著本節後面的內容操作即可。 因為hbase依賴於hadoop,因此啟動和停止都是需要按

Pythoncsv檔案的幾種方法 及 pandas.read_csv引數全解

''' Python讀寫csv檔案 逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號), 其檔案以純文字形式儲存表格資料(數字和文字)。 純文字意味著該檔案是一個字元序列,不含必須像二進位制數字那樣被解讀的資