Поскольку я новичок в зажигании, у меня есть простое сомнение
Мне нужно создать пустой фрейм данных, который я должен заполнить, основываясь на некоторых условиях позже.
Я прошел много вопросов о создании пустого фрейма данных, но в чем разница между приведенным ниже подходом
к чему я подошел? Я не знаю, правильный ли это подход или нет
def function1(df: DataFrame): DataFrame = {
var newdf:DataFrame= null;
if(!x._2(0).column.trim.isEmpty){
newdf= spark.sql("SELECT f_name,l_name FROM tab1");
}else{
newdf= spark.sql("SELECT address,zipcode FROM tab1");
}
newdf
}
Приведенный выше подход не выдает мне какие-либо ошибки при работе в локальной сети, не знаю, когда речь заходит о кластере.
Но я нашел другие подходы, в которых они создали пустой фрейм данных с указанной схемой, например:
val my_schema = StructType(Seq(
StructField("field1", StringType, nullable = false),
StructField("field2", StringType, nullable = false)
))
val empty: DataFrame = spark.createDataFrame(spark.sparkContext.emptyRDD[Row], my_schema)
Но моя проблема в том, что у меня нет предопределенной схемы, и результирующий кадр данных может иметь любую схему, связанную с средой выполнения, где я не знаю, как будет выглядеть схема.
Есть ли проблема, если я go с подходом 1 или что-то пропущено.