У меня есть выражение SQL и тип схемы ввода.Основываясь на этих двух данных, представляется возможным вычесть тип результата, когда выражение применяется к фрейму данных со схемой.Как узнать тип результата без явного создания фрейма данных с заданной схемой.
Я в основном хочу выполнить следующий метод:
def resultType(sqlExpression: String, schema: StructType): DataType = {
}
Один из способов достижения этого:
def createEmptyDataFrame(schema: StructType): DataFrame = {
val spark = SparkSession.builder().getOrCreate()
val dummyRDD = spark.sparkContext.parallelize(Seq(Row.empty))
spark.createDataFrame(dummyRDD, schema)
}
def resultType(sqlExpression: String, schema: StructType): DataType = {
val df = createEmptyDataFrame(schema)
val result = df.withColumn("temp", expr(sqlExpression))
result.schema("temp").dataType
}
Как этого добиться, не создавая пустой фрейм данных?