Spark Streaming 2.3.1 Типовое приведение: строка в метку времени - PullRequest
0 голосов
/ 04 сентября 2018

Я использую apsche spark streaming 2.3.1, где я получаю поток, содержащий значения меток времени (13: 09: 05.761237147) в формате «ЧЧ: мм: сс.хххххххх» в качестве строки.

Мне нужно преобразовать эту строку в тип данных timestamp.

spark = SparkSession \
    .builder \
    .appName("abc") \
    .getOrCreate()

schema = StructType().add("timestamp", "string").add("object", "string").add("score", "double")

lines = spark \
    .readStream \
    .option("sep", ",") \
    .schema(schema) \
    .csv("/path/to/folder/")

Любое предложение, как преобразовать метку времени в тип данных timestamp?

1 Ответ

0 голосов
/ 24 июля 2019

Согласно описанию, представленному в исходном коде классов TimestampType и DateTimeUtils, они поддерживают временные метки только с точностью до микросекунд.

https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/types/TimestampType.scala

https://github.com/apache/spark/blob/master/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala

...