[英]Spark Cassandra connector with Java for read
要求:- 我在 cassandra 中保存了數據,並且每小時我需要根據記錄發生的更新計算一些分數。我通過在數據集上使用 show() 方法看到數據正確
下面的代碼讀取數據: -
Dataset<DealFeedSchema> dealFeedSchemaDataset = session.read()
.format(Constants.SPARK_CASSANDRA_SOURCE_PATH)
.option(Constants.KEY_SPACE, Constants.CASSANDRA_KEY_SPACE)
.option(Constants.TABLE, Constants.CASSANDRA_DEAL_TABLE_SPACE)
.option(Constants.DATE_FORMAT, "yyyy-MM-dd HH:mm:ss")
.schema(DealFeedSchema.getDealFeedSchema())
.load()
.as(Encoders.bean(DealFeedSchema.class));
dealFeedSchemaDataset.show();
output 顯示如下:
+-------+----------+-------------+--------------------+-----------+------------+----------+------------------------+---------------+-----------+-------------------+-------------------+----------+------------+-------------------+----------------+-------------------+-------------+----------+--------------------+----------+-------------------------+---------------+----------------+---------------+--------------+--------------+-----+
|deal_id| deal_name|deal_category| deal_tags|growth_tags|deal_tag_ids|deal_price|deal_discount_percentage|deal_group_size|deal_active| deal_start_time| deal_expiry|product_id|product_name|product_description|product_category|product_category_id|product_price|hero_image| product_images| video_url|video_thumbnail_image_url|deal_like_count|deal_share_count|deal_view_count|deal_buy_count|weighted_score|boost|
+-------+----------+-------------+--------------------+-----------+------------+----------+------------------------+---------------+-----------+-------------------+-------------------+----------+------------+-------------------+----------------+-------------------+-------------+----------+--------------------+----------+-------------------------+---------------+----------------+---------------+--------------+--------------+-----+
| 4|7h12349961| mqw|[under999, under3...| []| []| 4969.0| null| 95166551| 1|2020-07-08 14:48:57|2020-07-18 14:48:57|4725457233| kao62ggnm7| 32h64e356z| jnnh29zr1f| null| 6651.0|86kk7s34yr|[dSt4P79, i4WXOHb...|d6tag27924| 4j1l36lp17| null| null| null| null| null| null|
因此,當我在dealFeedSchemaDataset上使用 map/foreach 時發生了一件奇怪的事情,數據似乎不正確我得到了deal_start_time的列值作為當前系統時間,如下所示,不確定這是如何改變的。
即使在下面的行給出了同樣的問題:
dealFeedSchemaDataset.select(
functions.col("deal_start_time")).as(Encoders.bean(DateTime.class))
.collectAsList().forEach(schema -> System.out.println(schema));
2020-07-10T20:21:47.895+05:30
有人可以幫我解決我做錯了什么嗎?
java.sql.Timestamp
這用於使用其中包含時間部分的格式
java.sql.Date
這只是日期
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.