代码之家  ›  专栏  ›  技术社区  ›  noobie-php

TypeError:“Column”对象在连接两个表时不可调用Pysarpk

  •  1
  • noobie-php  · 技术社区  · 5 年前

    因此,我试图2连接2个数据帧,这样做我得到以下错误。

    我将数据作为简单的csv文件加载,下面是从csv加载的模式。

    df1 = spark.read.format("csv").option("header", "true").load("collaborative/titles.csv", header=True, sep="|")
    df2 = spark.read.format("csv").option("header", "true").load("collaborative/tags.csv", header=True, sep="|")
    df1.printSchema()
    df2.printSchema()
    df1.alias("df1").join(df2.alias("df2"), col("df1.movie_id").equalTo(col("df2.movie_id"))).select(col("df2.*"))
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   akuiper    5 年前

    没有调用任何方法 equalTo 在列对象上。当你这么做的时候 col("df1.movie_id").equalTo 它假定您正在访问 movie_id 列对象不可调用 .

    print(col('df1.movie_id').equalTo)
    # Column<b'df1.movie_id[equalTo]'>
    

    correct join syntax here .

    df1 在连接之前,您不必为数据帧创建别名,然后选择:

    df1.select('movie_id').join(df2, 'movie_id').show()
    
        2
  •  0
  •   Swetha Shanmugam    5 年前

    d1 = df1.alias("df1")
    d2 = df2.alias("df2")
    d1.join(d2,d1.movie_id == d2.movie_id).select('df2.*')
    

    您可以参考pyspark连接示例 here .