gpt4 book ai didi

scala - 无法在 Scala 中为 Array[NullWritable, ByteWritable] 编写 SequenceFile

转载 作者:可可西里 更新时间:2023-11-01 16:28:29 26 4
gpt4 key购买 nike

我在 Scala 中有一个字节数组:val nums = Array[Byte](1,2,3,4,5,6,7,8,9) 或者您可以采用任何其他字节数组。

我想将它保存为HDFS 中的序列文件。下面是代码,我在 Scala 控制台中编写。

import org.apache.hadoop.io.compress.GzipCodec
nums.map( x => (NullWritable.get(), new ByteWritable(x)))).saveAsSequenceFile("/yourPath", classOf[GzipCodec])

但是,它给出了以下错误:

error: values saveAsSequenceFile is not a member of Array[ (org.apache.hadoop.io.NullWritable), (org.apache.hadoop.io.ByteWritable)]

您还需要导入这些类(在 Scala 控制台中)。

import org.apache.hadoop.io.NullWritable
import org.apache.hadoop.io.ByteWritable

最佳答案

方法 saveAsSequenceFile 可用于 RDD 而不是数组。所以首先你需要将你的数组提升到一个 RDD 中,然后你就可以调用方法 saveAsSequenceFile

val v = sc.parallelize(Array(("owl",3), ("gnu",4), ("dog",1), ("cat",2), ("ant",5)), 2)
v.saveAsSequenceFile("hd_seq_file")

http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html

关于scala - 无法在 Scala 中为 Array[NullWritable, ByteWritable] 编写 SequenceFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49214491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com