spark配置
Posted iAthena
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark配置相关的知识,希望对你有一定的参考价值。
缓存
Spark 支持在集群范围内将数据集缓存至每一个节点的内存中,可避免数据传输,当数据需要重复访问时这个特征非常有用,例如查询体积小的“热”数据集,或是运行如 PageRank 的迭代算法。调用 cache(),就可以将数据集进行缓存:
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 创建的。
val df = sqlContext.read.json("file:///usr/local/spark/examples/src/main/resources/people.json")
// df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]
df.show() // 输出数据源内容
// +----+-------+
// | age| name|
// +----+-------+
// |null|Michael|
// | 30| Andy|
// | 19| Justin|
// +----+-------+
DataFrames 处理结构化数据的一些基本操作:
df.select("name").show() // 只显示 "name" 列
// +-------+
// | name|
// +-------+
// |Michael|
// | Andy|
// | Justin|
// +-------+
df.select(df("name"), df("age") + 1).show() // 将 "age" 加 1
// +-------+---------+
// | name|(age + 1)|
// +-------+---------+
// |Michael| null|
// | Andy| 31|
// | Justin| 20|
// +-------+---------+
df.filter(df("age") > 21).show() # 条件语句
// +---+----+
// |age|name|
// +---+----+
// | 30|Andy|
// +---+----+
df.groupBy("age").count().show() // groupBy 操作
// +----+-----+
// | age|count|
// +----+-----+
// |null| 1|
// | 19| 1|
// | 30| 1|
// +----+-----+
也可以使用 SQL 语句来进行操作:
df.registerTempTable("people") // 将 DataFrame 注册为临时表 people
val result = sqlContext.sql("SELECT name, age FROM people WHERE age >= 13 AND age <= 19") // 执行 SQL 查询
result.show() // 输出结果
// +------+---+
// | name|age|
// +------+---+
// |Justin| 19|
// +------+---+
更多的功能可以查看完整的 DataFrames API ,此外 DataFrames 也包含了丰富的 DataFrames Function 可用于字符串处理、日期计算、数学计算等。
转载参考自:http://www.powerxing.com/spark-quick-start-guide/
以上是关于spark配置的主要内容,如果未能解决你的问题,请参考以下文章
spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段