Невозможно разрешить спарк имени столбца - PullRequest
0 голосов
/ 23 декабря 2018

Я создал 2 кадра данных, как показано ниже:

df_flights = spark1.read.parquet('domestic-flights\\flights.parquet')
df_airport_codes = spark1.read.load('domestic-flights\\flights.csv',format="csv",sep=",",inferSchema=True,header=True)

Затем я сослался на руководство по строкам данных, чтобы не получить дублирующиеся столбцы https://docs.databricks.com/spark/latest/faq/join-two-dataframes-duplicated-column.html

df3=df_flights.join(df_airport_codes,"origin_airport_code", 'left')

Когда я пытаюсьСортировать по любому из столбцов, которые были в обоих фреймах данных. Я все еще получаю ту же ошибку

Py4JJavaError: An error occurred while calling o1553.filter.

: org.apache.spark.sql.AnalysisException: Ссылка «Пассажиры» неоднозначна.пассажиров.;

ИЛИ если я попытаюсь выполнить сортировку:

df3.sort('passengers')

Py4JJavaError: An error occurred while calling o1553.sort.: org.apache.spark.sql.AnalysisException: cannot resolve '`passengers`' given input columns: [flights, destination_population, origin_city, distance, passengers, seats, flights, origin_population, passengers, flight_datetime, origin_air_port_code, flight_year, seats, origin_city, destination_city, destination_city, destination_airport_code, destination_airport_code, origin_population, destination_population, flight_month, distance];;

Вопрос в том, есть ли ошибка в моей логике соединения?Если нет, то как мне псевдоним неоднозначного столбца?

1 Ответ

0 голосов
/ 23 декабря 2018

В вашем соединении нет ошибок.Оба фрейма данных имеют одинаковый столбец, поэтому ваш результирующий фрейм данных содержит неоднозначные имена столбцов.

Именно поэтому сортировка по пассажирам приводит к исключению.Вам нужно отсортировать по правильному псевдониму.

df3.sort(df_flights.passengers)

Или сначала выбрать подходящие столбцы и отсортировать.Например,

df3.select(df_flights.passengers, df.origin_city, ......).sort("passengers").show()

Для сортировки вам необходимо быть уникальным перед любой операцией в Spark.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...