スパークに新しい。スパーク:行と要素
私は、タイプorg.apache.spark.sql.DataFrame = [id: string, wordList: array<string>]
のspark DataFrame dfの「wordList」列にいくつかの変換を行いたいと考えています。
私はdataBricksを使用しています。 DFは次のようになります(:リスト[文字列]オール):
具体的+--------------------+--------------------+
| id| wordList|
+--------------------+--------------------+
|08b0a9b6-3b9a-47a...| [a]|
|23c2ef79-8dce-4ad...|[ag, adfg, asdfgg...|
|26a7682f-2ce6-4eb...|[ghe, gener, ghee...|
|2ab530b5-04bc-463...|[bap, pemm, pava,...|
+--------------------+--------------------+
、私は機能shrinkListを定義した一覧[文字列]リストを取り、短いリストを返し、それを適用したいと考えていますwordList列。問題は、行をリストに変換するにはどうすればいいですか?
df.select("wordList").map(t => shrinkList(t(1)))
はエラーを与える:type mismatch; found : Any required: List[String]
はまた、私はここで、 "T(1)" についてはよく分かりません。私はむしろ、列の順序が将来変更される場合は、索引の代わりに列名を使用します。しかし、私はt $ "wordList"やt.wordListやt( "wordList")を動かすことはできません。したがって、t(1)を使用する代わりに、「wordList」列を選択するためにどのセレクタを使用できますか?
おかげ@LostInOverflow。私のdatabricksはちょうど死んだ、私は今それを試すことはできませんが、それが再び動作するときにそれを試します。質問: "1"を使用する代わりに、何らかの方法で列名を使用できますか? – MichM
このように 'getAs [Seq [String]](" some_name ")。toList'と思います。 –
私が試した答えはエラーでした: 'タイプミスマッチ; found:java.util.List [String] 必須:scala.collection.immutable.List [String] '。コメントのあなたのコードは、しかし、動作します。私はそれを受け入れることができるように、代わりの正解として "(1)"を保持し、元の答えのコードを編集したいですか? – MichM