Создайте фрейм данных, если указан номер столбца - PullRequest
0 голосов
/ 25 октября 2018

Когда я даю номер столбца как любое число 'n', он должен создать фрейм данных с таким количеством столбцов.В настоящее время обычно используется следующее:

val list = sc.parallelize(List((1, "b", "c", "d"))).toDF()

Это даст 4 столбца, но если я хочу передать номер столбца в качестве параметра и создать фрейм данных.

Количество столбцов с любыми даннымиПожалуйста, дайте мне знать, если есть способ сделать это.Заранее спасибо

1 Ответ

0 голосов
/ 25 октября 2018

Учитывая количество столбцов n:Int, будет возвращен пустой фрейм данных:

def createEmptyDf(n:Int) = {
  val df = spark.emptyDataFrame
  (1 to n).foldLeft(df){ case (resDf, i) => resDf.withColumn(s"$i", lit(null))}
}

После просмотра заметки вы также можете сделать это с помощью следующей группы / сводки для транспонирования:

val df = (1 to n).map(i => (i, 0)).toDF()
  .groupBy($"_2").pivot($"_1")
  .agg(first(lit(0)))
  .drop($"_2")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...