Scala 收集Hadoop文件RDD返回重复的结果
我正在尝试读取avro文件,如下所示Scala 收集Hadoop文件RDD返回重复的结果,scala,apache-spark,Scala,Apache Spark,我正在尝试读取avro文件,如下所示 val rdd = sc.hadoopFile( classOf[org.apache.avro.mapred.AvroInputFormat[MyAvroRecord]], classOf[org.apache.avro.mapred.AvroWrapper[MyAvroRecord]], classOf[org.apache.hadoop.io.NullWritable])(avropath) val collectedData = rd
val rdd = sc.hadoopFile(
classOf[org.apache.avro.mapred.AvroInputFormat[MyAvroRecord]],
classOf[org.apache.avro.mapred.AvroWrapper[MyAvroRecord]],
classOf[org.apache.hadoop.io.NullWritable])(avropath)
val collectedData = rdd.collect()
for (s <- collectedData){
println(s)
}
val rdd=sc.hadoop文件(
classOf[org.apache.avro.mapred.AvroInputFormat[MyAvroRecord]],
classOf[org.apache.avro.mapred.avrowraper[MyAvroRecord]],
classOf[org.apache.hadoop.io.nullwriteable])(avropath)
val collectedData=rdd.collect()
对于(sAddrdd.map(u.\u 1.datum)
,在进行采集之前
从:
''注意:''因为Hadoop的RecordReader类对每个记录重复使用相同的可写对象,所以直接缓存返回的RDD或直接将其传递给聚合或无序移动操作将创建对同一对象的多个引用。如果您计划直接缓存、排序或聚合Hadoop可写对象,您应该首先将它们复制到我们这里正在调用映射函数
在收集之前添加rdd.map(u.\u 1.datum)
从:
''注意:''因为Hadoop的RecordReader类对每个记录重复使用相同的可写对象,所以直接缓存返回的RDD或直接将其传递给聚合或无序移动操作将创建对同一对象的多个引用。如果您计划直接缓存、排序或聚合Hadoop可写对象,您应该首先将它们复制到我们这里正在调用映射函数