RDD
の代わりにDataFrame
を使用している場合は、filter
とブール値Column
の操作を使用します。
もval5
もnullでないとします。あなたのcsvファイルは次のようになります場合は
は:
[email protected] ~ > cat dat_2.csv
header1,header2,header3,header4,header5
val1,val2,val3,val4,val5
val1,val2,null,val4,val5
val1,val2,val3,null,val5
次に、あなたのコード:あなたのデータは次のようになります。それ以外の場合
scala> val dat_1 = spark.read.option("header", true).csv("dat_1.csv")
dat_1: org.apache.spark.sql.DataFrame = [header1: string, header2: string ... 3 more fields]
scala> dat_1.show
+-------+-------+-------+-------+-------+
|header1|header2|header3|header4|header5|
+-------+-------+-------+-------+-------+
| val1| val2| val3| val4| val5|
| val1| val2| null| val4| val5|
| val1| val2| val3| null| val5|
+-------+-------+-------+-------+-------+
scala> data1.filter($"header4".isNotNull && $"header5".isNotNull).show
+-------+-------+-------+-------+-------+
|header1|header2|header3|header4|header5|
+-------+-------+-------+-------+-------+
| val1| val2| val3| val4| val5|
| val1| val2| null| val4| val5|
+-------+-------+-------+-------+-------+
:
[email protected] ~ > cat dat_1.csv
header1,header2,header3,header4,header5
val1,val2,val3,val4,val5
val1,val2,,val4,val5
val1,val2,val3,,val5
次に、あなたのコードは次のようになります。次のようになります:
scala> val dat_2 = spark.read.option("header", true).csv("dat_2.csv")
dat_2: org.apache.spark.sql.DataFrame = [header1: string, header2: string ... 3 more fields]
scala> dat_2.show
+-------+-------+-------+-------+-------+
|header1|header2|header3|header4|header5|
+-------+-------+-------+-------+-------+
| val1| val2| val3| val4| val5|
| val1| val2| null| val4| val5|
| val1| val2| val3| null| val5|
+-------+-------+-------+-------+-------+
scala> dat_2.filter($"header4" =!= "null" && $"header5" =!= "null").show
+-------+-------+-------+-------+-------+
|header1|header2|header3|header4|header5|
+-------+-------+-------+-------+-------+
| val1| val2| val3| val4| val5|
| val1| val2| null| val4| val5|
+-------+-------+-------+-------+-------+
RDDを使用する必要があるという制約はありますか?私が思っていない場合は、DataFrameを使用することができます。 SPARKのDataFrame APIは、CSVファイルの操作を処理するのに最適です。 – Tawkir