Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 收集Hadoop文件RDD返回重复的结果_Scala_Apache Spark - Fatal编程技术网

Scala 收集Hadoop文件RDD返回重复的结果

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

我正在尝试读取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 = 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()
对于(sAdd
rdd.map(u.\u 1.datum)
,在进行采集之前

从:

''注意:''因为Hadoop的RecordReader类对每个记录重复使用相同的可写对象,所以直接缓存返回的RDD或直接将其传递给聚合或无序移动操作将创建对同一对象的多个引用。如果您计划直接缓存、排序或聚合Hadoop可写对象,您应该首先将它们复制到我们这里正在调用映射函数

在收集之前添加
rdd.map(u.\u 1.datum)

从:

''注意:''因为Hadoop的RecordReader类对每个记录重复使用相同的可写对象,所以直接缓存返回的RDD或直接将其传递给聚合或无序移动操作将创建对同一对象的多个引用。如果您计划直接缓存、排序或聚合Hadoop可写对象,您应该首先将它们复制到我们这里正在调用映射函数