我有一个 DynamoDB 表,需要将其连接到 EMR Spark SQL 才能对该表运行查询。我获得了带有发行标签 emr-4.6.0 和 Spark 1.6.1 的 EMR Spark Cluster。
我指的是文档:使用 Spark 分析 DynamoDB 数据 https://blogs.aws.amazon.com/bigdata/post/Tx1G4SQRV049UL0/Analyze-Your-Data-on-Amazon-DynamoDB-with-Apache-Spark
连接到主节点后,我运行命令:
spark-shell --jars /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar
它给出了一个警告:
Warning: Local jar /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar does not exist, skipping.
稍后,当我使用以下命令导入 DynamoDB 输入格式时
import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat
它给出了错误:
error: object dynamodb is not a member of package org.apache.hadoop
import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
error: object dynamodb is not a member of package org.apache.hadoop
import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat
我认为是 jar 导致了这个错误。从哪里获取这个 emr-ddb-hadoop.jar?
不要使用spark-shell --jars,spark-default.cnf中的配置:
spark.driver.extraClassPath /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar
spark.executor.extraClassPath /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar
稍后导入DynamoDB输入格式就OK了
import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)