Как преобразовать столбец данных в массив массивов? - PullRequest
0 голосов
/ 24 октября 2018

Я хочу запустить линию регрессии, используя PySpark.

У меня есть следующая СДР:

WeightHeight = CleanData.map(lambda x: (float(x[2]) , float(x[3])))

Я преобразовал СДР в кадр данных:

df = WeightHeight.toDF(["x","y"])

Теперь я хотел бы получить каждый столбец кадра данных и преобразовать его в два разных массива, x и y.

Я пытался с

x = np.array(df.select('x'))

или

x = np.array(df['x'])

Но когда я запустил его в функцию (slope_intercept (x, y)), которую я создал, чтобы определить коэффициентлинии регрессии я получаю сообщение об ошибке «Объект столбца не вызывается».

Есть идеи, как это исправить?

Спасибо!

Вотфункция создана.Я проверил его с меньшими значениями, такими как x = [1,2,3,4,5,6,7] и y = [10,20,30,30,30,40,50], и он работает.

def slope_intercept (x_val, y_val):
  x = np.array(x_val)
  y = np.array(y_val)
  m = ( ( ( np.mean(x)*np.mean(y))- np.mean(x*y)) / ((np.mean(x)*np.mean(x))- np.mean(x*x)))
  m = round(m,2)
  b = (np.mean(y) - np.mean(x)*m)
  b = round(b,2)
  return m,b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...