gpt4 book ai didi

scala - Spark 在 Databricks 上使用 Scala 加载 Z 压缩文件

转载 作者:行者123 更新时间:2023-12-04 10:04:59 30 4
gpt4 key购买 nike

有没有办法阅读.Z (大写)文件扩展名 Spark直接地?
我知道 Scalaspark可以阅读gzip文件 (.gz)直接,但是当我尝试加载压缩的 Z 时文件 (.Z)Dataframe它不起作用。

最佳答案

无法读取文件的原因.Z是因为 Spark尝试将文件扩展名与 匹配注册压缩编解码器 并且没有编解码器处理扩展 .Z !!
您所要做的就是扩展 GzipCodec并覆盖 getDefaultExtension方法。
举个例子:
这是我们的 ZgzipCodec.scala

package codecs
import org.apache.hadoop.io.compress.GzipCodec
class ZgzipCodec extends GzipCodec{
override def getDefaultExtension(): String = ".Z"

}
package tests

import org.apache.spark.sql.SparkSession

object ReadingGzipFromZExtension{
val spark = SparkSession
.builder()
.appName("ReadingGzipFromZExtension")
.master("local[*]")
.config("spark.sql.shuffle.partitions", "4") //Change to a more reasonable default number of partitions for our data
.config("spark.app.id", "ReadingGzipFromZExtension") // To silence Metrics warning
.config("spark.hadoop.io.compression.codecs", "codecs.ZgzipCodec") // Custom Codec that process .Z extensions as a common Gzip format
.getOrCreate()

val sc = spark.sparkContext

def main(args: Array[String]): Unit = {

val data = spark.read.csv("/path/file.Z")
data.show()

sc.stop()
spark.stop()
}
}
您可以点击此链接了解更多详情:
Reading compressed data with Spark using unknown file extensions

关于scala - Spark 在 Databricks 上使用 Scala 加载 Z 压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61631593/

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