【问题标题】:Write/Read/Delete binary data in Spark Databricks (scala)在 Spark Databricks (scala) 中写入/读取/删除二进制数据
【发布时间】:2021-12-01 02:11:00
【问题描述】:

我对 Databricks (Scala) 上的 Spark 非常陌生,我想知道如何将 Array[Byte] 类型的变量内容写入安装存储 mtn/somewhere/tmp/ 中的临时文件 data.bin ( Azure 数据湖)或file:/tmp/。然后我想知道如何将其作为 InputStream 读取,然后在完成后将其删除。

到目前为止我读过的所有方法都不起作用或不适用于二进制数据。

谢谢。

【问题讨论】:

    标签: scala apache-spark binary databricks


    【解决方案1】:

    原来这段代码工作正常:

    import java.io._
    import org.apache.commons.io.FileUtils
    
    // Create or collect the data
    val bytes: Array[Byte] = <some_data>
    
    try {
        // Write data to temp file
        // Note : Here I use GRIB2 file as I manipulate forecast data,
        //        but you can use .bin or .png/.jpg (if it's an image data)
        //        extensions or no extension at all. It doesn't matter.
        val path: String = "mf-data.grib"
        val file: File = new File(path)
        FileUtils.writeByteArrayToFile(file, bytes)
        
        // Read the temp file
        val input = new FileInputStream(path)
    
            ////////// Do something with it //////////
    
        // Remove the temp file
        if (!file.delete()) {
            println("Cannot delete temporary file !")
        }
    } catch {
        case _: Throwable => println("An I/O error occured")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 2021-07-02
      • 2017-08-21
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多