【发布时间】:2017-07-17 06:01:56
【问题描述】:
我在目录 s3://mybucket/my/directory/ 中的 s3 上有一些制表符分隔的数据。
现在,我告诉 pyspark 我想使用 \t 作为分隔符来读取 one 文件,如下所示:
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 这是一个制表符分隔的文件而不是 parquet 文件?
或者,有没有更简单的方法可以一次读取整个目录中的这些文件?
谢谢。
- 编辑:我使用的是 pyspark 版本 1.6.1 *
文件在 s3 上,所以我不能使用通常的:
indata_creds = sqlContext.read.text('s3://mybucket/my/directory/')
因为当我尝试这样做时,我得到了java.io.IOException: No input paths specified in job
还有什么我可以尝试的吗?
【问题讨论】:
标签: amazon-s3 amazon-ec2 pyspark parquet pyspark-sql