我想编写具有三个输入参数的泛型方法:
1.文件路径--字符串
1.模式-?
1.案例类
因此,我的想法是编写如下方法:
def load_sms_ds(filePath: String, schemaInfo: ?, cc: ?) = {
val ds = spark.read
.format("csv")
.option("header", "true")
.schema(?)
.option("delimiter",",")
.option("dateFormat", "yyyy-MM-dd HH:mm:ss.SSS")
.load(schemaInfo)
.as[?]
ds
}
并根据输入参数返回数据集。但我不确定参数schemaInfo和cc应该是什么类型?
1条答案
按热度按时间ryevplcw1#
首先,我要重新推荐阅读spark sql programming guide。其中包含了一些我认为在您学习Spark时通常会对您有所帮助的内容。
让我们使用Case类来定义模式,来完成读入CSV文件的过程。
首先,添加本例所需的各种导入:
定义案例类,可以在以下位置找到可用的不同类型:
添加用于提取给定案例类类型作为参数的模式(StructType)的方法:
定义从具有使用Case类定义的架构的路径读取CSV文件的方法:
创建SpakSession:
将一些样本数据写入临时文件:
调用此方法的示例: