小编Den*_*ver的帖子

Pyspark - 从 s3 读取 zip 文件到 RDD

我正在尝试从 s3 解压缩文件(.zip),
我尝试了以下方法

config_dict = {"fs.s3n.awsAccessKeyId":AWS_KEY,
               "fs.s3n.awsSecretAccessKey":AWS_SECRET}
print filename
rdd = sc.hadoopFile(filename,
                    'org.apache.hadoop.mapred.TextInputFormat',
                    'org.apache.hadoop.io.Text',
                    'org.apache.hadoop.io.LongWritable',
                    conf=config_dict) 
Run Code Online (Sandbox Code Playgroud)

这导致异常

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.hadoopFile.
: java.io.IOException: No FileSystem for scheme: s3n
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
    at org.apache...
Run Code Online (Sandbox Code Playgroud)

我也试过使用Boto连接

aws_connection = S3Connection(AWS_KEY, AWS_SECRET)
bucket = aws_connection.get_bucket('myBucket')
Run Code Online (Sandbox Code Playgroud)

并使用 GZIP 解压缩:

ip = gzip.GzipFile(fileobj=(StringIO(key.get_contents_as_string()))) 
myrdd = sc.textfile(ip.read())
Run Code Online (Sandbox Code Playgroud)

这没有给我想要的结果。

如果我将相同的 zip 文件从本地机器提供给我的 spark 程序,如下所示,内容将被正确读取

myrdd =  sc.textfile(<my zipped file>)
Run Code Online (Sandbox Code Playgroud)

有人能给我一个关于如何将压缩文件从 s3 读取到 spark …

python amazon-s3 apache-spark rdd pyspark

5
推荐指数
0
解决办法
2958
查看次数

PySpark Dataframe根据其他列中的重复值识别一列上的不同值

我有一个像这样的pyspark数据框:其中c1,c2,c3,c4,c5,c6是列

   +----------------------------+   
   |c1 | c2 | c3 | c4 | c5 | c6 |  
   |----------------------------|   
   | a |  x |  y |  z |  g |  h |    
   | b |  m |  f |  l |  n |  o |    
   | c |  x |  y |  z |  g |  h |    
   | d |  m |  f |  l |  n |  o |    
   | e |  x |  y |  z |  g |  i | …
Run Code Online (Sandbox Code Playgroud)

python dataframe apache-spark pyspark

2
推荐指数
1
解决办法
2507
查看次数

无法从垃圾桶运行火花壳

我是Spark的新手,我下载了预编译的spark。

当我尝试在命令行中从bin文件夹运行spark-shell时,它返回

:cd /users/denver/spark-1.6/bin
:spark-shell

找不到相关命令

但是如果我像这样运行

:cd /users/denver/spark-1.6
:./bin/spark-shell

它发出火花..

你能告诉我为什么在第一种情况下会引发错误吗

linux environment-variables apache-spark

0
推荐指数
1
解决办法
1万
查看次数