Невозможно установить часовой пояс по умолчанию в Фениксе - PullRequest
0 голосов
/ 16 октября 2018

Часовой пояс по умолчанию - 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 в Фениксе?

...