0

スパークの新機能。

type の spark DataFrame df の「wordList」列で何らかの変換を行いたいと思いますorg.apache.spark.sql.DataFrame = [id: string, wordList: array<string>]

私は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(ol: List[String]): List[String] を定義し、それを 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」列を選択できますか?

4

1 に答える 1

1

試す:

df.select("wordList").map(t => shrinkList(t.getSeq[String](0).toList))

また

df.select("wordList").map(t => shrinkList(t.getAs[Seq[String]]("wordList").toList))
于 2016-08-02T21:27:33.153 に答える