gpt4 book ai didi

python - 无法解析列名称 Spark

转载 作者:行者123 更新时间:2023-12-01 08:31:21 26 4
gpt4 key购买 nike

我创建了 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)

然后,我引用了 databricks 指南,以免获得重复的列 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];;

问题是,我的连接逻辑有错误吗?如果不是,我如何为不明确的列命名?

最佳答案

您的加入没有错误。两个数据框具有相同的列,因此生成的数据框包含不明确的列名称。

这就是为什么按乘客排序会产生异常的原因。您需要按正确的别名进行排序。

df3.sort(df_flights.passengers)

或者首先选择适当的列并排序。喜欢

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

在 Spark 中进行任何操作之前,您需要保持唯一性。

关于python - 无法解析列名称 Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53900605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com