-1

Spark Row と Scala List の違いは何ですか。どちらもインデックスによってアイテムにアクセスする方法を提供します。どちらをいつ使用するか

Row で確認できる唯一の違いは、いくつかのスキーマがあることです。

scala> val a=Row(1,"hi",2,"hello")
a: org.apache.spark.sql.Row = [1,hi,2,hello]

scala> a(0)
res61: Any = 1

scala> a(2)
res62: Any = 2

scala> a(3)
res63: Any = hello

scala> val b=List(1, "hi", 2,"hello")
b: List[Any] = List(1, hi, 2, hello)

scala> b(1)
res64: Any = hi

scala> b(2)
res65: Any = 2

scala> b(3)
res66: Any = hello

ローが登場した理由を理解するのを手伝ってください。

4

1 に答える 1

0

Re:

どちらも、インデックスによって項目にアクセスする方法を提供します。いつどちらを使用するか

これは私が信じている 1 つの側面にすぎません。Row でサポートされている関数を List と比較して見ると、List には Row よりも多くの追加機能があることに気付くかもしれません。ソース コードを見ると、Row は Array によってサポートされているようです。List は、Linked List のようなデータ構造を表すため、Array とは異なります。また、Spark を使用していない場合は、Spark ライブラリよりも Scala ライブラリで利用可能で最適な List 実装を使用する必要があります。

Re:

Row で確認できる唯一の違いは、いくつかのスキーマがあることです。

私の理解によると、行はスキーマの有無にかかわらず構築できます。

于 2019-08-12T14:28:24.680 に答える