#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)]
}