Часовой пояс по умолчанию - UTC в Фениксе, я хочу установить его на GMT + 8 (часовой пояс Китая)
В hbase-site.xml я добавил
<property>
<name>phoenix.query.dateFormatTimeZone</name>
<value>GMT+08:00</value>
<!-- <value>GMT+8</value> -->
<!-- <value>UTC+8</value> -->
<!-- <value>UTC+08:00</value> -->
<!-- <value>Asia/Shanghai</value> -->
</property>
Myкод искрового теста
def dataFrameTest(spark: SparkSession): Unit = {
import spark.implicits._
val date = new Date
val dateStr = MyDateUtil.dateFormat(date)
val curretTime = new Timestamp(date.getTime)
val re = SteamingRecord(dateStr, curretTime)
logger.info(re.toString)
val conf = HBaseConfiguration.create()
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("hbase.zookeeper.quorum", zookeeperQuorum)
conf.set("mapreduce.output.fileoutputformat.outputdir", outputdir);
val t = spark.createDataset(Seq(re))
t.toDF().saveToPhoenix("STEAMING_RECORD",conf,Option(CommonUtil.getZkurl))
}
В Фениксе значение dateStr равно 2018-10-17 01:13:23
, но значение curretTime равно 2018-10-16 17:13:23.097
.Я хочу, чтобы значение curretTime было 2018-10-17 01:13:23.xxx
, что является правильным временем в Китае.
STEAMING_RECORD ddl:
CREATE TABLE steaming_record (
//...
dateStr varchar(32),
curretTime date
)
Я мог бы использовать
CONVERT_TZ(CURRENT_DATE(), 'UTC', 'Asia/Shanghai')
дляполучить дату, но я не хочу использовать sql в своем коде
Как я могу установить часовой пояс по умолчанию GMT + 8 в Фениксе?