【 TiDB 使用环境】
tidb 5.2 + tispark2.4.1 + spark2.4 + CDH5.16
【概述】 场景 + 问题概述
在使用tispark开发时,在spark环境使用tidb表,不定期出现乱码。表和数据的格式都是UTF-8 。
【背景】 做过哪些操作
读取tidb表。spark配置
val sparkConf = new SparkConf().
//setIfMissing(“spark.master”, “local[*]”).
setIfMissing(“spark.app.name”, getClass.getName).
setIfMissing(“spark.driver.allowMultipleContexts”, “true”).
setIfMissing(“spark.sql.extensions”, “org.apache.spark.sql.TiExtensions”).
setIfMissing(“spark.tispark.pd.addresses”, “XX.X.XXX.XX:2379,XX.X.XX.XXX:2379,XX.X.XX.XXX:2379”).
setIfMissing(“spark.driver.maxResultSize”, “12g”).
setIfMissing(“spark.debug.maxToStringFields”, “150”).
setIfMissing(“spark.tispark.tidb.addr”, “10.6.201.99”).
setIfMissing(“spark.tispark.tidb.port”, “4000”).
//如果要同时操作hive和tidb,加上enableHiveSupport方法。
// 如果有重名库 要操作Tidb表要加上前缀已区分是hive还是tidb的表
setIfMissing(“spark.tispark.write.allow_spark_sql”, “true”).
setIfMissing(“spark.tispark.db_prefix”, “tidb_”).
setIfMissing(“spark.sql.crossJoin.enabled”, “true”)
【现象】 业务和数据库现象
val sql_6: String =
s"""
|select a.org_code,
| b.sub_department_name,
| b.region_code,
| b.region_name
|from (select
| actual_unpack_org_code as org_code
| from tidb_ytrpt.mdm_first_code_maintain
| where dt = ‘${BDate1}’
| and actual_unpack_place_org_type in (‘1’,‘3’)
| and is_del = ‘0’
| group by actual_unpack_org_code) a
| left join tidb_ytrpt.dw_dim_yto_org_trans b
| on a.org_code = b.sub_department_code
“”".stripMargin
val sql_6_df = spark.sql(sql_6)
sql_6_df.createOrReplaceTempView("temp_unload_package_center")
sql_6_df.show(10) //会随机出现乱码
【问题】 当前遇到的问题
随机出现乱码。一天内执行144次。总会出现1,2次乱码。
【业务影响】
【 TiDB 版本】
5.2
【附件】 相关日志及监控(https://metricstool.pingcap.com/)
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。