首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

Hive 不区分大小写, Parquet 不是 Hive 认为所有 columns (列)都可以为空, Parquet 可空性是 significant (重要)....这是因为结果作为 DataFrame 返回,并且可以轻松地在 Spark SQL 处理或与其他数据源连接。...请注意,lowerBound 和 upperBound 仅用于决定分区大小,不是用于过滤表行。 因此,表所有行将被分区并返回。此选项仅适用于读操作。...在 Scala DataFrame 变成了 Dataset[Row] 类型一个别名, Java API 使用者必须将 DataFrame 替换成 Dataset。...时间戳现在存储在 1 微秒精度,不是 1 纳秒。 在 sql 语句中,floating point(浮点数)现在解析为 decimal。HiveQL 解析保持不变。

25.9K80
您找到你想要的搜索结果了吗?
是的
没有找到

Spark SQL,DataFrame以及 Datasets 编程指南 - For 2.0

你可以选择你熟悉语言(现支持 Scala、Java、R、Python)以及在不同场景下选择不同方式来进行计算。 SQL 一种使用 Spark SQL 方式是使用 SQL。...Spark SQL 也支持从 Hive 读取数据,如何配置将会在下文中介绍。使用编码方式来执行 SQL 将会返回一个 Dataset/DataFrame。...DataFrame API 可在 Scala、Java、Python 和 R 中使用。在 Scala 和 Java DataFrame 由一个元素为 Row Dataset 表示。...使用这种方式将返回 DataFrame,并且 Spark SQL 可以轻易处理或与其他数据做 join 操作,所以我们应该优先使用这种方式不是 JdbcRDD。...lowerBound 和 upperBound 用来指定分区边界,不是用来过滤表数据,因为表所有数据都会被读取并分区 fetchSize 定义每次读取多少条数据,这有助于提升读取性能和稳定性

3.9K20

Spark强大函数扩展功能

Time/String Handling, Time Intervals, and UDAFs》介绍了在1.5DataFrame提供了丰富处理日期、时间和字符串函数;以及在Spark SQL 1.4...尤其采用SQL语句去执行数据分析时,UDF帮助我们在SQL函数与Scala函数之间左右逢源,还可以在一定程度上化解不同数据源具有歧异函数尴尬。想想不同关系数据库处理日期或时间函数名称吧!...例如上面len函数参数bookTitle,虽然是一个普通字符串,但当其代入到Spark SQL语句中,实参`title`实际上是表一个列(可以是列别名)。...此时,UDF定义也不相同,不能直接定义Scala函数,而是要用定义在org.apache.spark.sql.functionsudf方法来接收一个函数。...通过Spark提供UDF与UDAF,你可以慢慢实现属于自己行业函数库,Spark SQL变得越来越强大,对于使用者而言,却能变得越来越简单。

2.1K40

Spark SQL 数据统计 Scala 开发小结

1、RDD Dataset 和 DataFrame 速览 RDD 和 DataFrame 都是一个可以看成有很多行,每一行有若干列数据集(姑且先按照记录和字段概念来理解) 在 scala 可以这样表示一个...DataFrame 则是一个每列有命名数据集,类似于关系数据库表,读取某一列数据时候可以通过列名读取。所以相对于 RDD,DataFrame 提供了更详细数据结构信息 schema。...在 Spark 2.1 DataFrame 概念已经弱化了,将它视为 DataSet 一种实现 DataFrame is simply a type alias of Dataset[Row].../api/scala/index.html#org.apache.spark.sql.package@DataFrame=org.apache.spark.sql.Dataset[org.apache.spark.sql.Row...NaN,如果数据存在 NaN(不是 null ),那么一些统计函数算出来数据就会变成 NaN,如 avg。

9.5K1916

Spark数据工程|专题(1)——引入,安装,数据填充,异常处理等

运算速度快特点其成为了算法与数据工程任务必备技能之一,在大厂面试也经常出现对Spark考察。 不过Spark本身其实是具有一定学习门槛。...这里要注意蓝色框,如果不点scala文件夹,是看不到上面我选择Scala Class这个选项。这个原因在于IDEA认为你没有在正确地方写代码,不是因为你配置错了。...+--------+---+ 这里要注意是,Seq不是Spark特有结构,而是scala。...DataFrame里面非常多算子都是和SQL语句有关。...Remark 11: 函数内容最后一行只有一个变量dfTemp,这个就是函数返回值,上方定义函数名部分规定了函数返回类型为DataFrame对象。 这些都算是非常常见用法。

6.5K40

大数据技术之_19_Spark学习_03_Spark SQL 应用解析小结

3、Spark SQL 可以执行 SQL 语句,也可以执行 HQL 语句,将运行结果作为 Dataset 和 DataFrame(将查询出来结果转换成 RDD,类似于 hive 将 sql 语句转换成...4、Spark SQL 计算速度(Spark sql 比 Hive 快了至少一个数量级,尤其是在 Tungsten 成熟以后会更加无可匹敌),Spark SQL 推出 DataFrame 可以数据仓库直接使用机器学习...3、DataFrame 是一个弱类型数据对象,DataFrame 劣势是在编译期不进行表格字段类型检查。在运行期进行检查。...4、你可以通过将 DataFrame 注册成为一个临时表方式,来通过 Spark.sql 方法运行标准 SQL 语句来查询。...目录后,会读取 Hive warehouse 文件,获取到 hive 表格数据。

1.4K20

大数据技术之_27_电商平台数据分析项目_02_预备知识 + Scala + Spark Core + Spark SQL + Spark Streaming + Java 对象池

注意:如果一个集合比另一个集合短, 那么结果对偶数量和较短那个集合元素数量相同。 zipAll 方法可以你指定较短列表缺省值。...Broadcast Variable 是共享读变量,task 不能去修改它, Accumulator 可以多个 task 操作一个变量。...RDD transformation 操作是返回一个新 RDD 操作,比如 map 和 filter(), action 操作则是向驱动器程序返回结果或者把结果写入外部系统操作,比如 count...由于与 R 和 Pandas DataFrame 类似, Spark DataFrame 很好地继承了传统单机数据分析开放和体验。 ?   ...,消费者读取数据后什么时候提交 offset 也不是由它们自己决定,高阶消费者 API 会根据参数配置隔几秒提交一次。

2.7K20

spark零基础学习线路指导

mod=viewthread&tid=10122 3.2spark开发基础 开发环境写代码,或则写代码时候,遇到个严重问题,Scala还不会。这时候我们就需要补Scala知识。...rdd和DataFramespark编程是经常用到,那么该如何得到rdd,该如何创建DataFrame,他们之间该如何转换。...但是他们比较困惑是,该如何spark中将他们导出到关系数据库spark是否有这样类。这是因为对编程理解不够造成误解。...Person(id: Int, name: String, age: Int) 参考:csdn 绛门人,更多例子大家也可网上搜索 我们看到上面例子 sqlContext.sql可以将sql语句放入到函数...元素合并, 并返回一个新 DStream. count() 通过对 DStreaim 各个 RDD 元素进行计数, 然后返回只有一个元素 RDD 构成 DStream reduce

2K50

Spark之【SparkSQL编程】系列(No1)——《SparkSession与DataFrame

SparkSession 在老版本,SparkSQL提供两种SQL查询起始点:一个叫SQLContext,用于Spark自己提供SQL查询;一个叫HiveContext,用于连接Hive...DataFrame 2.1 创建 在Spark SQLSparkSession是创建DataFrame和执行SQL入口,创建DataFrame有三种方式:通过Spark数据源进行创建;从一个存在...语句实现查询全表 scala> val sqlDF = spark.sql("SELECT * FROM people") sqlDF: org.apache.spark.sql.DataFrame =...全局临时视图存在于系统数据库 global_temp,我们必须加上库名去引用它 5)对于DataFrame创建一个全局表 scala> df.createGlobalTempView("people..._【spark不是包名,而是sparkSession对象名称】 准备工作: 数据文件people.txt vim /opt/data/people.txt zhangsan,17 lisi,

1.5K20

spark零基础学习线路指导【包括spark2】

mod=viewthread&tid=10122 3.2spark开发基础 开发环境写代码,或则写代码时候,遇到个严重问题,Scala还不会。这时候我们就需要补Scala知识。...rdd和DataFramespark编程是经常用到,那么该如何得到rdd,该如何创建DataFrame,他们之间该如何转换。...但是他们比较困惑是,该如何spark中将他们导出到关系数据库spark是否有这样类。这是因为对编程理解不够造成误解。...Person(id: Int, name: String, age: Int) 参考:csdn 绛门人,更多例子大家也可网上搜索 我们看到上面例子 sqlContext.sql可以将sql语句放入到函数...元素合并, 并返回一个新 DStream. count() 通过对 DStreaim 各个 RDD 元素进行计数, 然后返回只有一个元素 RDD 构成 DStream reduce

1.4K30

Spark SQL 快速入门系列(2) | SparkSession与DataFrame简单介绍

SparkSession   在老版本,SparkSQL 提供两种 SQL 查询起始点:一个叫SQLContext,用于Spark 自己提供 SQL 查询;一个叫 HiveContext,用于连接...使用 DataFrame 进行编程   Spark SQL DataFrame API 允许我们使用 DataFrame 不用必须去注册临时表或者生成 SQL 表达式.   ...DataFrame转换从本质上来说更具有关系, DataSet API 提供了更加函数式 API 2.1 创建 DataFrame With a SparkSession, applications...通过SQL语句实现查询全表 scala> spark.sql("select * from global_temp.people") res31: org.apache.spark.sql.DataFrame...从 RDD 到 DataFrame   涉及到RDD, DataFrame, DataSet之间操作时, 需要导入:import spark.implicits._ 这里spark不是包名, 而是表示

2K30

总要到最后关头才肯重构代码,强如spark也不例外

这里Hive可能很多人不太熟悉,它是Hadoop家族结构化查询工具。将hadoop集群数据以表结构形式存储,程序员可以以类SQL语句来查询数据。看起来和数据库有些近似,但原理不太一样。...scala和java都是直接在JVM当中直接运行语言,Python不行,所以之前我们使用Python调用RDD处理spark速度也会慢很多。因为我们需要经过多层中转,我们可以看下下面这张图。...执行结束之后,还是通过Python拿回数据给sparkJVM。JVM执行结束之后,再把结果包装成Python类型返回给调用端。...甚至经过官方测量,使用pyspark写DataFrame效率已经和scala和java平起平坐了。 ? 所以如果我们要选择Python作为操作spark语言,DataFrame一定是首选。...这个时候整体效率还是会比scala低一些。 写了这么多废话,下面就让我们实际一点,看看究竟pyspark当中DataFrame如何使用吧。

1.2K10

RDD转换为DataFrame

想象一下,针对HDFS数据,直接就可以使用SQL进行查询。 Spark SQL支持两种方式来将RDD转换为DataFrame。 第一种方式,是使用反射来推断包含了特定数据类型RDD元数据。...版本:Scala由于其具有隐式转换特性,所以Spark SQLScala接口,是支持自动将包含了case classRDD转换为DataFrame。.../** * 如果要用scala开发spark程序 * 然后在其中,还要实现基于反射RDD到DataFrame转换,就必须得用object extends App方式 *...,对row使用,比javarow使用,更加丰富 // 在scala,可以用rowgetAs()方法,获取指定列名列 teenagerRDD.map { row => Student(row.getAs...()方法,获取指定几列值,返回是个map val studentRDD = teenagerRDD.map { row => { val map = row.getValuesMap[Any](Array

73720

大数据随记 —— DataFrame 与 RDD 之间相互转换

Spark SQL 中有两种方式可以在 DataFrame 和 RDD 中进行转换: ① 利用反射机制,推导包含某种类型 RDD,通过反射将其转换为指定类型 DataFrame,适用于提前知道...DataFrame 数据结构信息,即为 Scheme ① 通过反射获取 RDD 内 Scheme (使用条件)已知类 Schema,使用这种基于反射方法会代码更加简洁而且效果也更好。...在 Scala ,使用 case class 类型导入 RDD 并转换为 DataFrame,通过 case class 创建 Schema,case class 参数名称会被利用反射机制作为列名。...转成 RDD 进行操作:一次返回多列值 teenagers.map(_.getValuesMap[Any](List("name","age"))).collect().foreach(...SQL 接口创建 RDD Schema,这种方式会代码比较冗长。

98610
领券