Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala—如果DF1中有与DF2中的列匹配的数据,则从DF1中删除记录_Scala_Apache Spark - Fatal编程技术网

Scala—如果DF1中有与DF2中的列匹配的数据,则从DF1中删除记录

Scala—如果DF1中有与DF2中的列匹配的数据,则从DF1中删除记录,scala,apache-spark,Scala,Apache Spark,我有两个DF(railroadGreaterFile,railroadInputFile) 如果railroadGreaterFile中的MEMBER\u NUM列中的数据与railroadInputFile中的MEMBER\u NUM列中的数据匹配,我想从railroadGreaterFile中删除记录 下面是我使用的: val columnrailroadInputFile = railroadInputFile.withColumn("check", lit("check")) val r

我有两个DF(
railroadGreaterFile
railroadInputFile

如果
railroadGreaterFile
中的
MEMBER\u NUM
列中的数据与
railroadInputFile
中的
MEMBER\u NUM
列中的数据匹配,我想从
railroadGreaterFile
中删除记录

下面是我使用的:

val columnrailroadInputFile = railroadInputFile.withColumn("check", lit("check"))
val railroadGreaterNotInput = railroadGreaterFile
                               .join(columnrailroadInputFile, Seq("MEMBER_NUM"), "left")
                               .filter($"check".isNull)
                               .drop($"check")
执行上述操作时,记录被删除,但我看到
railroadGreaterNotInput
的模式是我的
DF1
DF2
的组合,因此当我尝试将
railroadGreaterNotInput
的数据写入文件时,它给出了以下错误

org.apache.spark.sql.AnalysisException: Reference 'GROUP_NUM' is ambiguous, could be: GROUP_NUM#508, GROUP_NUM#72

我应该怎么做才能使
railroadGreaterNotInput
只包含
railroadGreaterFile
DF中的字段?

加入时,您只能选择
成员数量

val columnrailroadInputFile = railroadInputFile.withColumn("check", lit("check"))
val railroadGreaterNotInput = railroadGreaterFile.join(
    columnrailroadInputFile.select("MEMBER_NUM", "check"), Seq("MEMBER_NUM"), "left")
   .filter($"check".isNull).drop($"check")
或者将
columnrailroadInputFile
中的所有列作为

columnrailroadInputFile.drop(columnrailroadInputFile.columns :_*)
但对于此用途,请将contion作为

columnrailroadInputFile(“成员数量”)==railroadInputFile(“成员数量”)


希望这有帮助

您可以从railroadInputFile重命名冲突的列名,只需在加入后选择railroadGreaterFile dataframe columns我就快到了,现在我的第一列是MEMBER_NUM,后面是其他列,有没有办法在railroadGreaterNotInput中交换第一列和第二列?我不确定,交换第一列和第二列是什么意思?railroadInputFile的架构是GROUP_NUM、MEMBER_NUM、。。。。railroadGreaterFile的架构为组\u NUM、成员\u NUM。。。。最后一个DF railroadGreaterNotInput的模式显示成员数、组数。。。。我希望最终的DF与我的DF1和DF2同步。您想交换
组数
成员数
吗?为什么要这样做?您只需要使用select(“按所需顺序使用字段”)