我在目錄s3://mybucket/my/directory/
的s3上有一些製表符分隔的數據。現在如何讀取pyspark中s3的表格數據?
,我告訴我要使用\t
作爲分隔符讀取只是一個文件中像這樣pyspark:
from pyspark import SparkContext
from pyspark.sql import HiveContext, SQLContext, Row
from pyspark.sql.types import *
from datetime import datetime
from pyspark.sql.functions import col, date_sub, log, mean, to_date, udf, unix_timestamp
from pyspark.sql.window import Window
from pyspark.sql import DataFrame
sc =SparkContext()
sc.setLogLevel("DEBUG")
sqlContext = SQLContext(sc)
indata_creds = sqlContext.read.load('s3://mybucket/my/directory/onefile.txt').option("delimiter", "\t")
但它告訴我:assertion failed: No predefined schema found, and no Parquet data files or summary files found under s3://mybucket/my/directory/onefile.txt
怎麼辦我告訴pyspark,這是一個製表符分隔的文件,而不是一個鑲木地板文件?
或者,有沒有一種更簡單的方法來一次讀取整個目錄中的這些文件?
謝謝。
- 編輯:我使用pyspark版本1.6.1 *
的文件是在S3上,所以我不能夠使用通常的:
indata_creds = sqlContext.read.text('s3://mybucket/my/directory/')
,因爲當我嘗試那我得到java.io.IOException: No input paths specified in job
其他我可以嘗試嗎?
沒有抱歉,這不起作用。首先,我得到'AttributeError:'DataFrameReader'對象沒有屬性'csv',你的代碼在上面。並且,當我嘗試執行'indata_creds = spark_session.read.option('sep','\ t').load('s3://mybucket/my/directory/onefile.txt')'我得到同樣的錯誤我發佈了關於鑲木地板文件。 – Sother
可能有其他的選擇:1)有沒有辦法將所有這些文本文件壓縮成s3上的幾個實木複合地板文件? 2)是否有一種方法可以一次讀取整個目錄? – Sother
查看我的編輯... –