使用org.apache.hadoop:hadoop-aws从pyspark中的s3中读取文件

迪帕克·波加里(Deepak Poojari)

尝试使用hadoop-aws从s3中读取文件,下面将介绍用于运行代码的命令。请帮助我解决此问题并了解我在做什么错。

# run using command
# time spark-submit --packages org.apache.hadoop:hadoop-aws:3.2.1 connect_s3_using_keys.py

from pyspark import SparkContext, SparkConf
import ConfigParser
import pyspark

# create Spark context with Spark configuration
conf = SparkConf().setAppName("Deepak_1ST_job")
sc = SparkContext(conf=conf)
sc.setLogLevel("ERROR")

hadoop_conf = sc._jsc.hadoopConfiguration()

config = ConfigParser.ConfigParser()
config.read("/home/deepak/Desktop/secure/awsCred.cnf")
accessKeyId = config.get("aws_keys", "access_key")
secretAccessKey = config.get("aws_keys", "secret_key")

hadoop_conf.set(
    "fs.s3n.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
hadoop_conf.set("fs3a.access.key", accessKeyId)
hadoop_conf.set("s3a.secret.key", secretAccessKey)

sqlContext = pyspark.SQLContext(sc)

df = sqlContext.read.json("s3a://bucket_name/logs/20191117log.json")
df.show()

编辑1:

由于我是pyspark的新手,因此我并不了解这些依赖项,因此该错误也不容易理解。

作为错误

File "/home/deepak/spark/spark-3.0.0-preview-bin-hadoop3.2/python/lib/pyspark.zip/pyspark/sql/utils.py", line 98, in deco
  File "/home/deepak/spark/spark-3.0.0-preview-bin-hadoop3.2/python/lib/py4j-0.10.8.1-src.zip/py4j/protocol.py", line 328, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o28.json.
: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        at org.apache.hadoop.fs.s3a.S3AUtils.lookupPassword(S3AUtils.java:816)
        at org.apache.hadoop.fs.s3a.S3AUtils.lookupPassword(S3AUtils.java:792)
        at org.apache.hadoop.fs.s3a.S3AUtils.getAWSAccessKeys(S3AUtils.java:747)
        at org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider.
大卫·瓦利

我在spark 3.0.0 / hadoop 3.2中遇到了相同的问题。

什么工作对我来说是替换hadoop-aws-3.2.1.jarspark-3.0.0-bin-hadoop3.2/jarshadoop-aws-3.2.0.jar这里找到:https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-aws/3.2.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NoClassDefFoundError:使用Spark读取s3数据时出现org / apache / hadoop / fs / StreamCapabilities

如何使用Apache Beam读取Hadoop文件?

如何解决预期的 org.apache.hadoop.io.Text,在 mapreduce 作业中收到 org.apache.hadoop.io.LongWritable

使用java.lang.NoSuchMethodError火花读取HBase:org.apache.hadoop.mapreduce.InputSplit.getLocationInfo错误

Hadoop MultipleOutputFormat对org.apache.hadoop.mapreduce.Job的支持

Hadoop错误.ClassCastException:无法将org.apache.hadoop.io.LongWritable强制转换为org.apache.hadoop.io.Text

Hadoop:java.lang.ClassCastException:org.apache.hadoop.io.LongWritable无法转换为org.apache.hadoop.io.Text

org.apache.hadoop.io.Text无法转换为org.apache.hadoop.io.NullWritable

线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / util / Tool

在 hbase 1.2.6 中找不到 org.apache.hadoop.hbase.mapreduce 和 mapred 包

java.lang.NoSuchMethodError: org.apache.hadoop.security.ProviderUtils.excludeIncompatibleCredentialProviders 从 Azure Blob 存储读取时

可运行的 JAR 文件:未找到实现“org.apache.hadoop.util.Tool”的类

在Cloudera中安装apache hadoop-tools

org.apache.ignite.IgniteException:对于输入字符串:ignite hadoop执行中的“ 30s”

异常线程 “main” org.apache.hadoop.ipc.RemoteException(java.io.IOException的)Hadoop的3.1.3

Spring Hadoop配置-没有类型为org.apache.hadoop.conf.Configuration的合格Bean

使用Visual Studio 2010的Apache hadoop源代码中的“错误:预期的声明”

org.apache.hadoop.fs.ParentNotDirectoryException: /tmp (不是目錄)

java.lang.NoClassDefFoundError:org.apache.hadoop.hbase.HBaseConfiguration

找到接口org.apache.hadoop.mapreduce.TaskAttemptContext

org.apache.hadoop.security.AccessControlException:/ user / rstudio(不是目录)

java.lang.NoClassDefFoundError:org / apache / hadoop / fs / StorageStatistics

找不到类'org.apache.hadoop.hive.kafka.KafkaStorageHandler'

错误org.apache.hadoop.hbase.regionserver.LeaseException

错误的值类:org.apache.hadoop.io.Text类不是org.apache.hadoop.io.IntWritable类

获取错误的值类:类 org.apache.hadoop.io.LongWritable 不是类 org.apache.hadoop.io.IntWritable

为什么 org.apache.hadoop.io.Writable 不能转换为 org.apache.hadoop.io.IntWritable?

使用Apache Hadoop JAR文件还是特定于供应商的?

Apache Pig:使用hadoop fs -text加载可以正常显示的文件