У меня проблема при преобразовании DataFrame в RDD.Кадр данных изначально создается из файла CSV:
columns = 'trip_date;trip_id;op_id;op_abk;op_name;transport_type;train_id;train_service;none;train_service_full;'\
'additional_trip;failed;stop_id;stop_name;sched_arrival;actual_arrival;arrival_status;sched_departure;' \
'actual_departure;departure_status;no_stop'.split(';')
types = [StringType()] * 6 + [IntegerType()] + [StringType()]*3 + [BooleanType()] * 2 +[StringType()] * 8 + [BooleanType()]
schema = StructType([StructField(name, t, False) for (name, t) in zip(columns, types)])
Затем считывается из CSV и фильтра
df = spark.read.csv('/datasets/project/istdaten/*/*',schema=schema, sep=';', header=True)
filtered = df.filter(df.stop_id.isin(selected_stops))
Выбранные остановки - это массив строк. Затем подсчитайте остановки:
filtered.select(filtered.stop_id).distinct().count() [1004 distinct stops]
filtered.rdd.map(lambda r : r.stop_id).distinct().count() [69 distinct stops]
Понятия не имею, как это может быть.Может быть перераспределение?