2017-06-22 10 views
-4

これは私のコードであるlog_type = "1" 行をフィルタリングすることである。引数が多すぎます

val sc1Rdd=parDf.select(parDf("token"),parDf("log_type")).rdd 

val sc2Rdd=sc1Rdd.filter(x=>x,log_type=="1") 

が、エラーコードが示された:

parDf: org.apache.spark.sql.DataFrame = [action_time: bigint, action_type: bigint ... 21 more fields] sc1Rdd: org.apache.spark.rdd.RDD[org.apache.spark.sql.Row] = MapPartitionsRDD[865] at rdd at :186 :188: error: too many arguments for method filter: (f: org.apache.spark.sql.Row => Boolean)org.apache.spark.rdd.RDD[org.apache.spark.sql.Row] val sc2Rdd=sc1Rdd.filter(x=>x,log_type=="1")

すべてのヘルプは意志感謝する。

+0

はlong_typeの列名ですか? –

+0

ご協力いただきありがとうございます。問題が解決されました – WW0512

答えて

0

あなたは、このことができます

val result = parDf.select(parDf("token"),parDf("log_type")).filter(parDf("long_type")===1) 

parDf.select(p===1)arDf("token"),parDf("log_type")).where(parDf("long_type") 

希望としてあなたは、単にフィルタリングすることができRDD にデータフレームまたは場所を変更する必要はありません!

+0

ありがとうございました〜そして、私は "val sc2Rdd = sc1Rdd.filter(x => x(1)== 1)"に変更を加えました。ご協力ありがとうございます – WW0512

関連する問題