0
ブール型列に関して、DataFrame
を分割したいと考えています。ブール型列でDataFrameを分割する方法
私が作ってみた:
def partition(df: DataFrame, c: Column): (DataFrame, DataFrame) =
(df.filter(c === true), df.filter(c === false))
注:私のユースケースでは、c
はUDFです。
良い方法がありますか?私が好きな
:
- をここで醜いブールテストに
を避けるためにスキャンを2回DATAFRAME
@ val df = sc.parallelize(Seq(1,2,3,4)).toDF("i")
df: org.apache.spark.sql.DataFrame = [i: int]
@ val u = udf((i: Int) => i % 2 == 0)
u: org.apache.spark.sql.UserDefinedFunction = UserDefinedFunction(<function1>, BooleanType, List(IntegerType))
@ partition(df, u($"i"))
res25: (org.apache.spark.sql.DataFrame, org.apache.spark.sql.DataFrame) = ([i: int], [i: int])
再現可能な例を共有できますか? – mtoto
combineByKeyを使用する –