我在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")"""
请帮忙。
答案 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!=="无:"直接在哪里条件