Как преобразовать SQLContext DataFrame в RDD векторов в Python?
-
16-10-2019 - |
Вопрос
У меня есть кадр данных SQLContext, полученную из кадры данных Pandas, состоящей из нескольких численных столбцов. Я хочу выполнить Многофакторный статистический анализ с использованием pyspark.mllib.stats упаковка. Статистическая функция ожидает RDD векторов. Я не мог преобразовать этот кадр данных в RDD векторов. Есть ли способ преобразовать кадр данных?
Код:
rdd = sqlCtx.createDataFrame(df_new)
summary = Statistics.colStats(rdd)
Я получаю df_new от
df_new = df.applymap(lambda s: dic.get(s) if s in dic else s) #df is a pandas dataframe
Я получаю ошибку py4jjava на суммарной линии. Проблема с форматом RDD.
Решение
API DataFrame Python раскрывает RDD DataFrame, вызывая следующее:
df.rdd # you can save it, perform transformations of course, etc.
df.rdd возвращает контент как pyspark.rdd of Row.
Затем вы можете составить на карту этот RDD строки, преобразующий каждую строку в numpy
вектор. Я не могу быть более конкретным в отношении преобразования, так как не знаю, что ваш вектор представляет в данной информации.
Примечание 1: df
это переменная определяет наш флажок данных.
ПРИМЕЧАНИЕ 2: Эта функция доступна с Spark 1.3