python
  • apache-spark
  • pyspark
  • apache-spark-sql
  • 2015-11-16 5 views 7 likes 
    7

    私はスパーク1.3を使用していますが、Pythonインタフェース(SparkSQL)SparkSQLは、複数の列

    次作品を使用して複数の列に参加したいと思いますに参加します。

    numeric.registerTempTable("numeric") 
    Ref.registerTempTable("Ref") 
    
    test = numeric.join(Ref, numeric.ID == Ref.ID, joinType='inner') 
    

    私は今、複数の列に基づいてそれらを結合したいと思います。

    私はSyntaxErrorを取得:これで無効な構文:

    test = numeric.join(Ref, 
        numeric.ID == Ref.ID AND numeric.TYPE == Ref.TYPE AND 
        numeric.STATUS == Ref.STATUS , joinType='inner') 
    

    答えて

    16

    あなたは&/|演算子を使用して、演算子の優先順位については注意する必要があります:

    df1 = sqlContext.createDataFrame(
        [(1, "a", 2.0), (2, "b", 3.0), (3, "c", 3.0)], 
        ("x1", "x2", "x3")) 
    
    df2 = sqlContext.createDataFrame(
        [(1, "f", -1.0), (2, "b", 0.0)], ("x1", "x2", "x3")) 
    
    df = df1.join(df2, (df1.x1 == df2.x1) & (df1.x2 == df2.x2)) 
    df.show() 
    
    ## +---+---+---+---+---+---+ 
    ## | x1| x2| x3| x1| x2| x3| 
    ## +---+---+---+---+---+---+ 
    ## | 2| b|3.0| 2| b|0.0| 
    ## +---+---+---+---+---+---+ 
    
    関連する問題