我有两个Spark数据框:具有所有物料交易的dataframe_1和具有唯一物料ID的dataframe_2。我想为dataframe_2中的每个值过滤dataframe1中的所有行。
我正在尝试使用联接查询,但是不确定下面如何继续使用scala编写主程序:
def main(args: Array[String]) {
Logger.getLogger("org").setLevel(Level.ERROR)
val ss = SparkSession
.builder
.appName("Self_apriori_1").master("local[*]")
.getOrCreate()
import ss.implicits._
val df_1 = ss.read.option("inferSchema", value=true).csv("/home/balakumar/scala work files/matrimony_3.csv")
df_1.show()
df_1.printSchema()
val df_2 = ss.read.option("inferSchema" ,value=true) csv("/home/balakumar/scala work files/unique_1.txt")
df_2.show(false)
df_2.printSchema()
}
}
下面是show()命令的dataframe_1和dataframe_2输出 对于dataframe_2中的每个值,例如(101),我要求在存在101的位置过滤以下行
>|101|201| 301| 401|
>|101|201| 301|null|
>|101|201|null|null|
>|101|501|null|null|
类似地,对于dataframe_2中的所有值,我要求所有行都要过滤。 join命令可以吗?
>#dataframe_1
>+---+---+----+----+
> _c0|_c1| _c2| _c3
>+---+---+----+----+
>|101|201| 301| 401|
>|101|201| 301|null|
>|101|201|null|null|
>|101|501|null|null|
>|601|201| 301|null|
>|601|201|null|null|
>|601|501|null|null|
>+---+---+----+----+
>root
> |-- _c0: integer (nullable = true)
> |-- _c1: integer (nullable = true)
> |-- _c2: integer (nullable = true)
> |-- _c3: integer (nullable = true)
>#dataframe_2
>+---+
>|_c0|
>+---+
>|101|
>|201|
>|301|
>|401|
>|501|
>|601|