Как создать искровой датафрейм из списка - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть список scala List[Any] = List("a", "b",...), и мне нужно получить кадр данных Spark, состоящий из единственной строки со всеми столбцами в списке.Я пытаюсь создать RDD из этого с sc.parallelize(myList), которые возвращают org.apache.spark.rdd.RDD[Any] = ParallelCollectionRDD[5834] at parallelize at <console>:81

, но затем я не могу выбрать отдельные элементы этой строки: sc.parallelize(myList).map(line => line(0)) возвращает error: Any does not take parameters

и я не могу использовать toDF() для получения моего DataFrame

value toDF is not a member of org.apache.spark.rdd.RDD[Any]

Я полагаю, что это как-то связано с типом Any, но мне нужно допустить любой тип, так как я не знаю, что я буду получать в моем списке

1 Ответ

0 голосов
/ 26 сентября 2018

Этот подход не будет работать, потому что не существует неявно предоставленной функции .toDF для List [Any].

Даже если бы вы создавали DataFrame с одним столбцом с именем value, содержащим столько строк, скольков вашем исходном списке есть элементы.

например,

scala> List(1,2,3).toDF
res10: org.apache.spark.sql.DataFrame = [value: int]

Вы ищете что-то вроде:

scala> List(List(1,2,3)).toDF
res11: org.apache.spark.sql.DataFrame = [value: array<int>]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...