gpt4 book ai didi

scala - 如何使用Scala解压缩简明的(hadoop文件格式)文件

转载 作者:行者123 更新时间:2023-12-02 20:22:23 24 4
gpt4 key购买 nike

previous问题开始,我已经将hadoop文件格式化为快照压缩文件,并且我想解压缩并将内容写入csv文件,就像snzip工具那样,snzip -d /Path/to/file.snappy。我发现snappy-java不支持解压缩这种格式。因此,我决定使用hadoop通用包中的org.apache.hadoop.io.compress.SnappyCodec。但我找不到任何执行此操作的示例。这是我尝试过的;

object test extends App {
val input: Array[Byte] = Files.readAllBytes(Paths.get("/Path/to/file.snappy"))
val s: SnappyDecompressor = new SnappyDecompressor()
val dec = s.decompress(input, 0, input.length)
println(dec)

但这给了我以下输出;
20/01/07 12:59:57 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
0

额外的问题:如何压缩给定的.csv文件?

最佳答案

您忘记了使用setInput(请参阅documentation)。
类似于以下内容的东西应该起作用:

object test extends App {
val input: Array[Byte] = Files.readAllBytes(Paths.get("/Path/to/file.snappy"))
val s: SnappyDecompressor = new SnappyDecompressor()
s.setInput(input, 0, input.length)
var decompressed = new Array[Byte](10*1024)
decompressor.decompress(decompressed, 0, decompressed.length)
println(new String(decompressed, StandardCharsets.UTF_8))
}

关于scala - 如何使用Scala解压缩简明的(hadoop文件格式)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59629155/

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