我正在关注 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()
其次,我可以只从第二行获取数据吗(我不知道第二行中的数据是什么)。
第三,如何使用Spark sql阅读彩色图像?
第四,我仍然不确定 Spark 中的数据集和数据帧之间有什么区别。变量 df 是一个数据帧,所以我可以将"迈克尔"更改为整数 5 吗?我可以在数据集中执行此操作吗?
-
$
不是注释。这是一个方法调用(new ColumnName("name")
的快捷方式)。 - 你不会。Spark SQL没有行索引的概念。
- 你不会。您可以将低级RDD API与特定的输入格式(如HIPI项目中的格式)一起使用,然后进行转换。
- 数据集 API 和数据帧之间的区别
1) 对于问题 1,$
符号用作选择列并在其上应用函数的快捷方式。例如:
df.select($"id".isNull).show
这可以是其他明智的写成
df.select(col("id").isNull)
2)Spark没有索引,但是对于原型设计,您可以使用df.take(10)(i)
i
可能是您想要的元素。注意:每次对基础数据进行分区时,行为可能会有所不同。