了解 Spark 的一些基础知识 SQL

Understanding some basics of Spark SQL

我正在关注 http://spark.apache.org/docs/latest/sql-programming-guide.html

输入后:

val df = spark.read.json("examples/src/main/resources/people.json")

// Displays the content of the DataFrame to stdout
df.show()
// +----+-------+
// | age|   name|
// +----+-------+
// |null|Michael|
// |  30|   Andy|
// |  19| Justin|
// +----+-------+

我有一些问题没有看到答案。

首先,$符号是什么? 如

 df.select($"name", $"age" + 1).show()

其次,我可以只从第二行获取数据吗(我不知道第二行的数据是什么)。

第三,你会如何读入带有火花的彩色图像sql?

4th,我仍然不确定 spark 中的数据集和数据帧之间的区别。变量 df 是一个数据帧,那么我可以将 "Michael" 更改为整数 5 吗?我可以在数据集中这样做吗?

  1. $ 不是注解。它是 a method callnew ColumnName("name") 的快捷方式)。
  2. 你不会。 Spark SQL 没有行索引的概念。
  3. 你不会。您可以将低级 RDD API 与特定输入格式(例如来自 HIPI 项目的格式)一起使用,然后进行转换。
  4. Difference between DataSet API and DataFrame

1) 对于问题 1,$ 符号用作选择列并在其上应用函数的快捷方式。例如:

df.select($"id".isNull).show

也可以写成

df.select(col("id").isNull)

2) Spark 没有索引,但对于原型设计,您可以使用 df.take(10)(i),其中 i 可能是您想要的元素。注意:每次对基础数据进行分区时,行为可能会有所不同。