The option spark.sql.caseSensitive controls whether column names etc should be case sensitive or not. It can be set e.g. by
spark_session.sql('set spark.sql.caseSensitive=true')
and is false per default.
It does not seem to be possible to enable it globally in $SPARK_HOME/conf/spark-defaults.conf with
spark.sql.caseSensitive: True
though.
Is that intended or is there some other file to set sql options?
Also in the source it is stated that it is highly discouraged to enable this at all. What is the rationale behind that advice?
As it turns out setting
spark.sql.caseSensitive: True
in $SPARK_HOME/conf/spark-defaults.conf DOES work after all. It just has to be done in the configuration of the Spark driver as well, not the master or workers. Apparently I forgot that when I last tried.
The option spark.sql.caseSensitive controls whether column names etc should be case sensitive or not. It can be set e.g. byspark_session.sql('set spark.sql.caseSensitive=true')and is false per default...
RDD层面:
持久化cache:内存
MEMORY_ONLY_SER:序列化(
启用
spark
kryo序列化)有效降低内存占用,但耗费更多cpu性能序列化,而且还要注册需要序列化的类;
以yarn集群为例,一般数据可靠性要求高,memory and disk,yarn资源充足memory 的java序列化即可,yarn资源不充足可以采用kryo序列化;
DFrame&DataSet持久化:
cache:默认Memory and Dis
熟悉
Spark
编程的朋友们应该知道,
Spark
中有
Sql
Context与HiveContext,其中
Sql
Context默认是
大小写
敏感,如果DataFrame中有字段相同只是
大小写
不同,在使用字段的时候不会引发歧义;HiveContext提供了更多的Hive预置函数,可以更高效的进行数据开发,但是默认为大小不敏感,也就是说当数据中存在类似name和NAME两个字段时,这个时候如果编写代码:
Java字符串
字符串是Java编程中最常用的数据类型之一,而Java基本数据类型中只有只能存储单个字符的char型,所以当需要存储例如姓名,词语,单词,句子等不止一个字符的数据就需要使用String类来存储数据。
Java中字符串一旦被创建就不能再进行修改
若想要更改字符串的值,只能通过对字符串重新复制来实现
定义字符串
String类提供了11种构造方法,这些方法提供不同的
参数
来初始化字符串,比如提供了一个字符数组
参数
:
public class StringDemo{
public sta
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并发度
Spark
SQL
里面有很多的
参数
,而且这些
参数
在
Spark
官网中没有明确的解释,可能是太多了吧,可以通过在
spark
-
sql
中使用set -v 命令显示当前
spark
-
sql
版本支持的
参数
。
本文讲解最近关于在参与hive往
spark
迁移过程中遇到的一些
参数
相关问题的调优。
内容分为两部分,第一部分讲遇到异常,从而需要通过设置
参数
来解决的调优;第二部分讲用于提升性能而进行的调优。
异常调优...
最近整理了一下
spark
SQL
内置配。加粗配置项是对
spark
SQL
调优性能影响比较大的项,小伙伴们按需酌情配置。后续会挑出一些通用调优配置,共大家参考。有不正确的地方,欢迎大家在留言区留言讨论。
spark
.
sql
.optimizer.maxIterations
sql
优化器最大迭代次数
spark
.
sql
.optimizer...
同样,lower_case_table_names
参数
的值可以是 0、1、2。
注意,这种方法修改的是
全局
变量,会影响到所有用户的连接,因此建议在修改前备份数据。修改完毕后,需要重启 My
SQL
8 服务才能生效。
需要注意的是,在 My
SQL
8 中,如果 lower_case_table_names
参数
的值为 0,那么所有表名和字段名都是
区分
大小写
的;如果为 1 或 2,表名是不
区分
大小写
的,但字段名仍然是
区分
大小写
的。因此,在设计数据库表时,应该注意表名和字段名的
大小写
规范,以避免出现混淆和错误。