создание пустого фрейма данных - PullRequest
1 голос
/ 20 января 2020

Поскольку я новичок в зажигании, у меня есть простое сомнение
Мне нужно создать пустой фрейм данных, который я должен заполнить, основываясь на некоторых условиях позже.

Я прошел много вопросов о создании пустого фрейма данных, но в чем разница между приведенным ниже подходом

к чему я подошел? Я не знаю, правильный ли это подход или нет

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 или что-то пропущено.

1 Ответ

1 голос
/ 20 января 2020

Старайтесь избегать синтаксиса, используя vars. Фреймы данных являются неизменяемыми коллекциями, и Scala позволяет создавать выражения для создания фрейма данных. Пример примерно такой: используйте случай, отредактируйте свой вопрос и добавьте что-нибудь более конкретное c ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...