val inputfile = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.option("delimiter", "\t")
.load("data")
inputfile: org.apache.spark.sql.DataFrame = [a: string, b: bigint, c: boolean]
val outputfile = inputfile.groupBy($"a",$"b").max($"c")
c
がブール変数であり、ブール値に集計を適用できないため、上記のコードは失敗します。 Sparkデータフレームの全列についてtrue
の値を1
に、false
を0
に変換する関数がSparkにありますか?制約付きのApache Spark(Scala)データフレームのブール型列を数値列に変換しますか?
私は、次の(出典:How to change column types in Spark SQL's DataFrame?)を試してみました質問後
val inputfile = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.option("delimiter", "\t")
.load("data")
val tempfile =inputfile.select("a","b","c").withColumn("c",toInt(inputfile("c")))
val outputfile = tempfile.groupBy($"a",$"b").max($"c")
を:PySparkためCasting a new derived column in a DataFrame from boolean to integerの答えが、私は特にスカラ座のための機能を望んでいました。
どのようなヘルプにも感謝します。
こんにちは@Achyuth、この問題を調べていただきありがとうございます。しかし、これは機能しません。 Bool2intは 'bool'を引数として取り込む関数ですが、' org.apache.spark.sql.Column'を引数として必要としました。 – Learner