【问题标题】:Spark, how to read a file as byte array?Spark,如何将文件读取为字节数组?
【发布时间】:2021-03-03 08:29:14
【问题描述】:

有没有办法在 spark 中将文件读取为字节数组?

到目前为止,我正在使用以下代码,但文件的内容在字节级别发生了变化。它是一个加密文件,因此寻找在不改变字节级别的情况下读取文件的方法。我看到很多关于同一主题的问题,但没有一个提供令人满意的答案。所以发布这个问题,因为它也可以帮助其他人。谢谢

val rawFileRDDEncrypted = spark.sparkContext.textFile("path")

【问题讨论】:

  • 不,它不能解决我的问题。我正在尝试仅将一个加密文件读取为字节数组
  • sc.binaryFiles() 有效吗?
  • sc.binaryFile 是您在上面共享的链接中引用的内容,但它不起作用
  • 为什么它不起作用? docs 表示它将读取为字节数组。
  • spark.sparkContext.binaryFiles("path") 这是我尝试过的,但我无法从中获取字节。如果你有sn-ps,你能分享...谢谢

标签: scala apache-spark


【解决方案1】:

让它和这个一起工作

val binaryFileList = spark.sparkContext.binaryFiles("file").collect()
val byteArray: Array[Array[Byte]] = binaryFileList.map(tuple=> {
  val pds = tuple._2
  val dis = pds.open()
  val len = dis.available();
  val buf = Array.ofDim[Byte](len)
  pds.open().readFully(buf)
  buf
})

【讨论】:

    猜你喜欢
    • 2013-07-31
    • 2014-03-30
    • 2011-11-27
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    相关资源
    最近更新 更多