web-dev-qa-db-ja.com

Spark DataFrameでマップを使用しようとしています

私は最近Spark=とJavaの両方で実験を始めました。最初にWordCountを使用して有名なRDDexampleを試しましたが、すべてが期待通りに進みました。私自身の例ですが、RDDではなくDataFrameを使用しています。

だから私はファイルからデータセットを読んでいます

DataFrame df = sqlContext.read()
        .format("com.databricks.spark.csv")
        .option("inferSchema", "true")
        .option("delimiter", ";")
        .option("header", "true")
        .load(inputFilePath);

そして、特定の列を選択し、そのようなすべての行に単純な変換を適用しようとします

df = df.select("start")
        .map(text -> text + "asd");

しかし、コンパイルでは2番目の行に問題が見つかりますが、これは完全には理解できません(開始列はstring型として推測されます)。

インターフェースscala.Function1にある複数のオーバーライドしない抽象メソッド

ラムダ関数がScala関数として扱われるのはなぜですか?エラーメッセージの実際の意味は?

6
LetsPlayYahtzee

データフレームでselect関数を使用すると、データフレームが返されます。次に、行の値ではなく、Rowdatatypeに関数を適用します。その後、最初に値を取得する必要があるため、以下を実行する必要があります。

df.select("start").map(el->el.getString(0)+"asd")

しかし、DFではなく戻り値としてRDDを取得します

10
jojo_Berlin