создайте фрейм данных pyspark из словаря python с одним столбцом как np.ndarray

#python #numpy #dataframe #apache-spark #pyspark

#python #numpy #фрейм данных #apache-spark #pyspark

Вопрос:

Я хотел бы создать фрейм данных pyspark из словаря python с одним столбцом как np.narray.

например

 import numpy as np
d = {1: np.random.uniform(-1, 1, 2), 20: np.random.uniform(-1, 1, 2)}
df = spark.createDataFrame(d.items(), ['id', 'val']).cache() # error: TypeError: not supported type: <class 'numpy.ndarray'>
display(df)
  

Я также пытался преобразовать ndarray в list, но он по-прежнему не работает.

Как создать фрейм данных с таким массивом?

Спасибо

Ответ №1:

Spark не может определить тип данных для объектов np.float64. Вам нужно преобразовать их в числа с плавающей точкой Python:

 d = {1: [float(i) for i in np.random.uniform(-1, 1, 2)],
     20: [float(i) for i in np.random.uniform(-1, 1, 2)]
    }