spark配置(3)

缓存

Spark 支持在集群范围内将数据集缓存至每一个节点的内存中,可避免数据传输,当数据需要重复访问时这个特征非常有用,例如查询体积小的“热”数据集,或是运行如 PageRank 的迭代算法。调用 cache(),就可以将数据集进行缓存:

  1. linesWithSpark.cache()


Spark SQL 和 DataFrames

Spark SQL 是 Spark 内嵌的模块,用于结构化数据。

在 Spark 程序中可以使用 SQL 查询语句或 DataFrame API

DataFrames 和 SQL 提供了通用的方式来连接多种数据源,支持 Hive、Avro、Parquet、ORC、JSON、和 JDBC,并且可以在多种数据源之间执行 join 操作。

Spark SQL 的功能是通过 SQLContext 类来使用的,而创建 SQLContext 是通过 SparkContext 创建的。

  1. val df = sqlContext.read.json("file:///usr/local/spark/examples/src/main/resources/people.json")
  2. // df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]
  3. df.show()     // 输出数据源内容
  4. // +----+-------+
  5. // | age|   name|
  6. // +----+-------+
  7. // |null|Michael|
  8. // |  30|   Andy|
  9. // |  19| Justin|
  10. // +----+-------+

DataFrames 处理结构化数据的一些基本操作:

  1. df.select("name").show()    // 只显示 "name"
  2. // +-------+
  3. // |   name|
  4. // +-------+
  5. // |Michael|
  6. // |   Andy|
  7. // | Justin|
  8. // +-------+
  9. df.select(df("name"), df("age") + 1).show()   // "age" 1
  10. // +-------+---------+
  11. // |   name|(age + 1)|
  12. // +-------+---------+
  13. // |Michael|     null|
  14. // |   Andy|       31|
  15. // | Justin|       20|
  16. // +-------+---------+
  17. df.filter(df("age") > 21).show()     # 条件语句
  18. // +---+----+
  19. // |age|name|
  20. // +---+----+
  21. // | 30|Andy|
  22. // +---+----+
  23. df.groupBy("age").count().show()   // groupBy 操作
  24. // +----+-----+
  25. // | age|count|
  26. // +----+-----+
  27. // |null|    1|
  28. // |  19|    1|
  29. // |  30|    1|
  30. // +----+-----+

也可以使用 SQL 语句来进行操作:

  1. df.registerTempTable("people")     // DataFrame 注册为临时表 people
  2. val result = sqlContext.sql("SELECT name, age FROM people WHERE age >= 13 AND age <= 19")  // 执行 SQL 查询
  3. result.show()        // 输出结果
  4. // +------+---+
  5. // |  name|age|
  6. // +------+---+
  7. // |Justin| 19|
  8. // +------+---+

更多的功能可以查看完整的 DataFrames API ,此外 DataFrames 也包含了丰富的 DataFrames Function 可用于字符串处理、日期计算、数学计算等。


转载参考自:http://www.powerxing.com/spark-quick-start-guide/ 





原文地址:https://www.cnblogs.com/iathena/p/5615741.html