создать искровой фрейм данных из списка словарей разных структур - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть список словарей

говорят

list_ = [
 {u'column1': u'test1', u'column2': u'None'},
 {u'added_column1': u'test2', u'column2': u'None'}]

В первой строке есть два столбца column1, column2

Вторая строка имеет два столбца added_column1, column2

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

Есть ли какое-нибудь долгосрочное решение?

В настоящее время

spark.createDataFrame(list_).show() 

Это работает, но я получаю это предупреждение.

UserWarning: вывод схемы из dict устарел, используйте pyspark.sql.Row вместо warnings.warn ("вывод схемы из dict осуждается, "

1 Ответ

0 голосов
/ 28 апреля 2019

Вы можете использовать функцию toDF() в СДР и указать отношение выборки, которое будет использоваться для вывода схемы при преобразовании в фрейм данных.

list_ = [
 {u'column1': u'test1', u'column2': u'None'},
 {u'added_column1': u'test2', u'column2': u'None'}]

sc.parallelize(list_).toDF(sampleRatio=0.9).show()

Для создания фрейма данных с использованием строк (созданных из dict) требуется, чтобывсе строки имеют одинаковое количество столбцов

spark.createDataFrame(list(map(lambda x: Row(**x), list_))).show()

Приведенный выше код выдаст вам ошибку: Input row doesn't have expected number of values required by the schema. 3 fields are required while 2 values are provided.

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