熟悉Spark编程的朋友们应该知道,Spark中有SqlContext与HiveContext,其中SqlContext默认是大小写敏感,如果DataFrame中有字段相同只是大小写不同,在使用字段的时候不会引发歧义;HiveContext提供了更多的Hive预置函数,可以更高效的进行数据开发,但是默认为大小不敏感,也就是说当数据中存在类似 name NAME 两个字段时,这个时候如果编写代码:

logs.select("name")

则会引发HiveContext的异常,因为HiveContext此时不知道该选择 name 还是 NAME

此时我们可以使用如下配置,指定HiveContext大小写为敏感的,从而解决这个问题:

hiveSqlContext.sql("set spark.sql.caseSensitive=true")
熟悉Spark编程的朋友们应该知道,Spark中有SqlContext与HiveContext,其中SqlContext默认是大小写敏感,如果DataFrame中有字段相同只是大小写不同,在使用字段的时候不会引发歧义;HiveContext提供了更多的Hive预置函数,可以更高效的进行数据开发,但是默认为大小不敏感,也就是说当数据中存在类似name和NAME两个字段时,这个时候如果编写代码:l... 假设我们数据需要与规则数据进行匹配,在Class 定义规则,此时不对它进行序列化。 Class Rules { val rulesMap = Map( hadoop -> 1, spark -> 2) val hostname = InetAddress.getLocalHost.getHostName println(hostname + @@@@@@@@@@@@@@@@) 如果我们在程序 使用map操作使规则和数据进行匹配。 val r = lines.map(word => { val rules = new Rules   1.Sql Context 默认 大小写 敏感 ,如果DataFrame 有字段相同, 大小写 不同,在使用字段的时候不会引起歧义。   2. Hive Context 提供更多的 Hive 预置函数,可以更高效的进行数据分析,默认 大小写 敏感 。   注意:在 spark 2.x 没有出现Sql Context 大小写 敏感 问题 ! sql Context .sql("select * from user")... Hive SQL ,数据类型英文字母 大小写 敏感 ; 除SQL数据类型外,还支持Java数据类型,比如字符串string ; 复杂数据类型的使用通常需要和分隔符指定语法配合使用; 如果定义的数据类型和文件不一 致, Hive 会尝试隐式转换,但是不保证成功。 原生数据类型 复合数据类型 Hive SerDe 在之前,我们知道 Hive 数据是保存在HDFS上的,而 mysql查询默认是不区分 大小写 的 如: select * from students where name like 'a%' select * from students where name like 'A%' 效果是一样的。 要让mysql查询区分 大小写
set spark .sql.caseSensitive=FALSE; 设置不区分 大小写 set spark .speculation.interval='500';--检测周期,单位为毫秒 set spark .speculation.quantile='0.75';--完成task的百分比时启动推测 set spark .speculation.multiplier='1.5'; --比其它的慢多少倍时启动推测 set spark .streaming.concurrentJobs='3'; --控制job并发度
hive 语句: select DENSE_RANK() OVER(PARTITION BY mcc ORDER BY app_id) AS flag from dm.test_table where 1=1; HIVE 的报错信息如下: FAILED: SemanticException Failed to breaku... Spark SQL里面有很多的参数,而且这些参数在 Spark 官网 没有明确的解释,可能是太多了吧,可以通过在 spark -sql 使用set -v 命令显示当前 spark -sql版本支持的参数。 本文讲解最近关于在参与 hive spark 迁移过程 遇到的一些参数相关 问题 的调优。 内容分为两部分,第一部分讲遇到异常,从而需要通过设置参数来解决的调优;第二部分讲用于提升性能而进行的调优。 异常调优...
最近整理了一下 spark SQL内置配。加粗配置项是对 spark SQL 调优性能影响比较大的项,小伙伴们按需酌情配置。后续会挑出一些通用调优配置,共大家参考。有不正确的地方,欢迎大家在留言区留言讨论。 spark .sql.optimizer.maxIterations sql优化器最大迭代次数 spark .sql.optimizer...
Spark SQL可以通过 Hive Context 来操作 Hive 表。 Hive Context Spark SQL 专门用来操作 Hive 数据的上下文对象,它可以让我们使用 Spark SQL来查询和操作 Hive 表。 使用 Hive Context 操作 Hive 表的步骤如下: 1. 创建 Hive Context 对象 val hive Context = new Hive Context (sc) 2. 使用 Hive Context 来查询 Hive hive Context .sql("SELECT * FROM my_table").show() 3. 使用 Hive Context 来创建 Hive hive Context .sql("CREATE TABLE my_table (id INT, name STRING)").show() 4. 使用 Hive Context 来插入数据到 Hive hive Context .sql("INSERT INTO my_table VALUES (1, 'Alice'), (2, 'Bob')").show() 5. 使用 Hive Context 来更新 Hive hive Context .sql("UPDATE my_table SET name = 'Charlie' WHERE id = 1").show() 6. 使用 Hive Context 来删除 Hive hive Context .sql("DROP TABLE my_table").show() 需要注意的是,在使用 Hive Context 操作 Hive 表时,需要先将 Hive 的配置文件 hive -site.xml放到 Spark 的conf目录下,以便让 Spark 能够连接到 Hive