Spark.sql选择其他表中没有匹配列的行

时间:2016-03-03 01:06:40

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

我有一个名为edges的数据框,如下所示:

+------+------+-------------------+                                             
|   src|   dst|      mean_affinity|
+------+------+-------------------+
|  [78]|  [81]|   0.78547141736462|
|  [98]| [102]| 0.8051602291309927|
|[2540]|[3195]| 0.7734367678994718|
|   [1]|[1367]|0.37372281429944215|
| [182]|[1602]| 0.3915882096267663|
|   [1]|  [77]| 0.6999457255005836|
|  [55]|  [78]| 0.4411667943000793|
+------+------+-------------------+

我不想在src和dst列中重复任何内容。 例如,78是第一行中的src,因此它不能作为最后一行中的dst。换句话说,任何顶点只能在表格中出现一个。

此表也应按mean_affinity排序。 我开始为此编写一个查询,但它似乎不起作用:

sqlContext.sql("""select e.src, e.dst, e.mean_affinity 
                    from edges e
                    where not exists 
                   (select src from edges where src = e.dst)""").show()

这是stacktrace的一部分:

 An error occurred while calling o111.sql.
: java.lang.RuntimeException: [3.46] failure: ``)'' expected but identifier src found

                    where not exists (select src from edges where src = e.dst)
                                             ^
    at scala.sys.package$.error(package.scala:27)

谢谢!

0 个答案:

没有答案