我有一个 DynamoDB 表,我需要连接到 EMR Spark SQL 以在该表上运行查询。我得到了带有发布标签 emr-4.6.0 和 Spark 1.6.1 的 EMR Spark Cluster。
我指的是文档:Analyse DynamoDB Data with 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 输入格式时
导入 org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
导入 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 Input Format即可
import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat
import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat
关于hadoop - 获取 emr-ddb-hadoop.jar 以连接 DynamoDB 和 EMR Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060243/