Напишите Elasticsearch от Spark, неверная отметка времени
У меня есть один столбец данных Spark:
<class 'pyspark.sql.dataframe.DataFrame'>
StructType(List(StructField(updateDate,TimestampType,true)))
При записи в asticsearch с помощью spark поле updateDate не рассматривается как дата и записывается как метка времени Unix (мс).
def write_to_elastic(table, destination):
table.write \
.format("org.elasticsearch.spark.sql") \
.option("es.mapping.date.rich", "true") \
.mode("overwrite") \
.option("es.index.auto.create", "true") \
.option("es.resource", destination + "/table") \
.option("es.nodes", ce.es_nodes) \
.option("es.net.ssl.protocol", "true") \
.option("es.nodes.wan.only", "true") \
.option("es.net.http.auth.user", ce.es_user) \
.option("es.field.read.empty.as.null", "yes") \
.option("es.net.http.auth.pass", ce.es_password) \
.save()
Вот проглоченный предмет:
{
"test-date": {
"aliases": {},
"mappings": {
"table": {
"properties": {
"updateDate": {
"type": "long"
}
}
}
},
"settings": {
"index": {
"creation_date": "1517000418516",
"number_of_shards": "5",
"number_of_replicas": "1",
"uuid": "DMYyE1NPTpyE9HuKI29BqA",
"version": {
"created": "6010299"
},
"provided_name": "test-date"
}
}
}
}
Если я записываю фрейм данных Spark в файл, поле даты записывается как:2017-10-27T00: 00: 00.000Z.
Что может быть причиной такого поведения?