因此,我正在使用以下代码将csv文件读取到Spark(scala(中的数据帧中:
val dataframe=spark.read
.option("sep", args(0))
.option("encoding","UTF-8")
.schema(sch)
.csv(args(1))
其中args(0)
是指定csv中分隔符的运行时参数(逗号、制表符等(,args(1)
是读取csv的S3路径。
我想概括这个输入,这样,根据第三个参数args(2)
,我就可以用模式sch
读取我的数据帧,csv、json或parquet格式。
实现这一目标的最佳方法是什么?
您可以使用.format
指定输入文件格式(csv/json/parquet/etc.(,并使用.load
加载文件。
val dataframe = args(2) match {
case "csv" => {spark.read
.format(args(2))
.option("sep", args(0))
.option("encoding","UTF-8")
.schema(sch)
.load(args(1))
}
case _ => {spark.read
.format(args(2))
.option("encoding","UTF-8")
.schema(sch)
.load(args(1))
}
}