火花壳中的行与列表



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

请帮助我理解为什么Row会出现在画面中。

回复:

两者都提供了一种按索引访问项目的方法 何时使用哪一个

我相信这只是一个方面。如果您查看 Row 与 List 相比支持的功能,那么您可能会意识到 List 具有比 Row 更多的功能。查看源代码,似乎 Row 由数组支持。List 与 Array 不同,因为它表示链表类型的数据结构。此外,如果您不使用Spark,那么您应该在Scala库中使用任何可用且最适合的列表实现,而不是在Spark库中。

再:

我在 Row 中看到的唯一区别是它有一些架构。

根据我的理解,行可以在有或没有模式的情况下构造。

相关内容

  • 没有找到相关文章

最新更新