Pyspark 2.2.0, преобразующий Dataframe в RDD, дает другой результат - PullRequest
0 голосов
/ 12 июня 2018

У меня проблема при преобразовании 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]

Понятия не имею, как это может быть.Может быть перераспределение?

...