我正在使用Python 2(在EMR上运行PySpark的Jupyter笔记本)。我正在尝试将一些数据作为数据框加载,以便映射/减少它并将其输出到我自己的S3存储桶。
我通常使用此命令:
df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load('file:///home/path/datafolder/data2014/*.csv')
当文件在S3而不是我自己的存储桶(因为我不确定如何格式化.load
命令)时,这是无法工作的,这是我现在的大多数用例。我的文件也是.csv和.txt.gz的混合,复制时我想用csv格式(解压缩)。
我在谷歌上看了一眼并在Python 2(Jupyter笔记本)中尝试了以下命令:
import os
import findspark
findspark.init('/usr/lib/spark/')
from pyspark import SparkContext, SQLContext
sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)
import sys
if sys.version_info[0] >= 3:
from urllib.request import urlretrieve
else:
from urllib import urlretrieve
# Get file from URL like this:
urlretrieve("https://s3.amazonaws.com/bucketname/path/path2/path3/path4/path3/results.txt.gz")
简单地输出:('/tmp/tmpmDB1EC.gz', <httplib.HTTPMessage instance at 0x7f54db894758>)
所以我不确定现在该做什么。
我已经阅读了文档,并搜索了这个网站和Google的简单方法来形成df,但我被卡住了。我还读到了关于使用我的AWS密钥/密钥(我有),但我找不到一个可以遵循的例子。
有人可以帮助我吗?
答案 0 :(得分:0)
您需要使用spark上下文
加载它def __unicode__