, потому что я не могу использовать искровой CSV я вручную создал dataframe из CSV следующим образом:подачи dataframe, созданный из CSV в MLlib Kmeans: IndexError: индекс списка из диапазона
raw_data=sc.textFile("data/ALS.csv").cache()
csv_data=raw_data.map(lambda l:l.split(","))
header=csv_data.first()
csv_data=csv_data.filter(lambda line:line !=header)
row_data=csv_data.map(lambda p :Row (
location_history_id=p[0],
user_id=p[1],
latitude=p[2],
longitude=p[3],
address=p[4],
created_at=p[5],
valid_until=p[6],
timezone_offset_secs=p[7],
opening_times_id=p[8],
timezone_id=p[9]))
location_df = sqlContext.createDataFrame(row_data)
location_df.registerTempTable("locations")
мне нужно только два колонки:
lati_longi_df=sqlContext.sql("""SELECT latitude, longitude FROM locations""")
rdd_lati_longi = lati_longi_df.map(lambda data: Vectors.dense([float(c) for c in data]))
rdd_lati_longi.take(2):
[DenseVector ([- 6,2416, 106,7949]), DenseVector ([- 6,2443, 106,7956])]
теперь, кажется, что каждая вещь готова для KMeans Обучение:
clusters = KMeans.train(rdd_lati_longi, 10, maxIterations=30,
runs=10, initializationMode="random")
, но я получаю следующее сообщение об ошибке:
IndexError: list index out of range
Первые три строки ALS.csv: location_history_id, user_id, широта, долгота, адрес, created_at, valid_until, timezone_offset_secs, opening_times_id, timezone_id
@AlbertoBonsanto – sanaz
@eliasah я ценю вашу помощь – sanaz
@ zero323 я был бы признателен вашей помощи – sanaz