【问题标题】:How can we convert an HadoopRDD result into Parquet format?我们如何将 HadoopRDD 结果转换为 Parquet 格式?
【发布时间】:2016-06-20 05:19:55
【问题描述】:

我正在尝试使用 Apache Spark 读取 DynamodDB 表。

以下是我的实现:

所以在 Spark Shell 中

spark-shell --jars /usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar
import org.apache.hadoop.io.Text; 
import org.apache.hadoop.dynamodb.DynamoDBItemWritable

/* Importing DynamoDBInputFormat and DynamoDBOutputFormat */ 
import org.apache.hadoop.dynamodb.read.DynamoDBInputFormat 
import org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat 
import org.apache.hadoop.mapred.JobConf 
import org.apache.hadoop.io.LongWritable   
var jobConf = new JobConf(sc.hadoopConfiguration) 
jobConf.set("dynamodb.servicename", "dynamodb") 
jobConf.set("dynamodb.input.tableName", "myDynamoDBTable")

// Pointing to DynamoDB table 
jobConf.set("dynamodb.endpoint", "dynamodb.us-east-1.amazonaws.com") 
jobConf.set("dynamodb.regionid", "us-east-1") jobConf.set("dynamodb.throughput.read", "1")
jobConf.set("dynamodb.throughput.read.percent", "1")
jobConf.set("dynamodb.version", "2011-12-05")  
jobConf.set("mapred.output.format.class", "org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat")
jobConf.set("mapred.input.format.class", "org.apache.hadoop.dynamodb.read.DynamoDBInputFormat")  
var orders = sc.hadoopRDD(jobConf, classOf[DynamoDBInputFormat], classOf[Text], classOf[DynamoDBItemWritable])

我们在“orders”变量中得到结果。

如何将此结果转换为 Parquet 文件 或格式?

更新:我找到了这段代码来访问和转换 dynamodb 数据 https://github.com/onzocom/spark-dynamodb/blob/master/src/main/scala/com/onzo/spark/dynamodb/DynamoDbRelation.scala?

【问题讨论】:

  • 代码块请使用{}按钮,而不是编辑器中的引号

标签: hadoop apache-spark amazon-dynamodb rdd parquet


【解决方案1】:

数据帧可以保存为 Parquet 文件,但 RDD 不能。这是因为 Parquet 文件需要一个模式。 RDD 不需要有模式,但数据帧必须。

【讨论】:

    猜你喜欢
    • 2018-11-21
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2021-08-28
    • 2021-10-24
    • 2019-09-18
    相关资源
    最近更新 更多