spark scala DataFrame错误

时间:2017-08-15 18:02:09

标签: apache-spark apache-spark-sql spark-dataframe

我在Spark 1.6中有一个以下数据框,我想在数据框过滤器中使用过滤器变量,如下所示,但是会出错。

dlg.Dispose()

当我运行时

SUBROUTINE test_routine(A,B)

IMPLICIT NONE

    REAL,ALLOCATABLE,INTENT(IN)    :: A(:,:)
    REAL,ALLOCATABLE,OPTIONAL,INTENT(INOUT)   :: B(:,:)
    REAL,ALLOCATABLE               :: op_B(:,:)

    ALLOCATE(op_B(SIZE(A,1),SIZE(A,2)))
    op_B = A
    op_B(:,:) = 1

    IF(PRESENT(B)) THEN
        B = op_B
    END IF

    DEALLOCATE(op_B)

END SUBROUTINE

我收到此错误:

 val df = sc.parallelize(Seq(
 ("None", "a", "b"), ("c", "None", "d"), ("e", "f", "None"), ("g", "h", "i") )).toDF("A", "B", "C")

val  fil =  """($"A" !== "None") && ($"B" !== "None") && ($"C" !== "None")"""

请帮忙。

2 个答案:

答案 0 :(得分:0)

使用正确的SQL:

val fil =  """A != "None" AND B != "None" AND C != "None""""

或DSL(2.x)

val fil = ($"A" =!= "None") && ($"B" =!= "None") && ($"C" =!= "None")

(1.x的):

val fil = ($"A" !== "None") && ($"B" !== "None") && ($"C" !== "None")

答案 1 :(得分:0)

这"""($" A"!=="无")&& ($" B"!=="无")&& ($" C"!=="无")"""已在Where条件中替换为字符串。

您可以创建列名序列并直接在where条件中引用这些列,例如, columns.head!=="无:"直接在哪里条件