hzwcome opened a new issue #1551:
URL: https://github.com/apache/incubator-seatunnel/issues/1551


   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/incubator-seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   When I use seatunnel2.1.0  transfer  Hive  table to ClickHouse  table,It was 
an error
   But when I use seatunnel1.5.7,it worked!
   
   Hive table:
   
   ```sql
   drop table if exists prod_info;
   create table prod_info
   (
       prod_sn    string comment 'sn',
       create_time string comment 'time'
   )COMMENT 'Prod  Info'
   PARTITIONED BY (`dt` string)
   STORED AS PARQUET
   TBLPROPERTIES ("parquet.compression" = "lzo");
   ```
   
   Insert data:
   
   ```sql
   insert into prod_info values ('F0001','2022-01-18 00:00:00.0','2022-01-18');
   insert into prod_info values ('F00012','2022-01-19 00:00:00.0','2022-01-19');
   ```
   
   ClickHouse Table:
   
   ```sql
   drop table if exists prod_info;
   create table prod_info
   (
       prod_sn    String,
       create_time DateTime
   )engine =MergeTree
       partition by toYYYYMMDD(create_time)
    primary key (prod_sn)
       ORDER BY (prod_sn)
   ```
   
   
   
   ### SeaTunnel Version
   
   apache-seatunnel-incubating-2.1.0
   
   ### SeaTunnel Config
   
   ```conf
   env {
     spark.sql.catalogImplementation = "hive"
     spark.app.name = "hive2clickhouse"
     spark.executor.instances = 4
     spark.executor.cores = 4
     spark.executor.memory = "4g"
     spark.sql.hive.manageFilesourcePartitions=false
   }
   
   source {
       hive {
                   pre_sql = "select prod_sn,substring(create_time,1,19) as 
create_time from default.prod_info"
                   result_table_name = "prod_info"
       }
   }
   
   transform {}
   
   sink {
       Clickhouse {
                   host = "hadoop101:8123"
                   database = "test"
                   table = "prod_info"
                   fields = ["prod_sn","create_time"]
                   username = "default"
                   password = ""
       }
   }
   ```
   
   
   ### Running Command
   
   ```shell
   start-seatunnel-spark.sh \
   --master 'local[2]' \
   --deploy-mode client \
   --config $SEATUNNEL_HOME/jobs/hive2ck_test.conf
   ```
   
   
   ### Error Exception
   
   ```log
   22/03/24 17:20:09 ERROR Executor: Exception in task 0.0 in stage 1.0 (TID 1)
   java.lang.ClassCastException: java.lang.String cannot be cast to 
java.sql.Timestamp
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderBaseTypeStatement(Clickhouse.scala:359)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement$1.apply$mcVI$sp(Clickhouse.scala:406)
        at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:160)
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement(Clickhouse.scala:392)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:94)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:91)
        at scala.collection.Iterator$class.foreach(Iterator.scala:891)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:91)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:79)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
        at org.apache.spark.scheduler.Task.run(Task.scala:123)
        at 
org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:411)
        at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:417)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   22/03/24 17:20:09 ERROR Executor: Exception in task 1.0 in stage 1.0 (TID 2)
   java.lang.ClassCastException: java.lang.String cannot be cast to 
java.sql.Timestamp
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderBaseTypeStatement(Clickhouse.scala:359)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement$1.apply$mcVI$sp(Clickhouse.scala:406)
        at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:160)
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement(Clickhouse.scala:392)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:94)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:91)
        at scala.collection.Iterator$class.foreach(Iterator.scala:891)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:91)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:79)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
        at org.apache.spark.scheduler.Task.run(Task.scala:123)
        at 
org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:411)
        at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:417)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   22/03/24 17:20:09 WARN TaskSetManager: Lost task 0.0 in stage 1.0 (TID 1, 
localhost, executor driver): java.lang.ClassCastException: java.lang.String 
cannot be cast to java.sql.Timestamp
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderBaseTypeStatement(Clickhouse.scala:359)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement$1.apply$mcVI$sp(Clickhouse.scala:406)
        at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:160)
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement(Clickhouse.scala:392)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:94)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:91)
        at scala.collection.Iterator$class.foreach(Iterator.scala:891)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:91)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:79)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
        at org.apache.spark.scheduler.Task.run(Task.scala:123)
        at 
org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:411)
        at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:417)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   
   22/03/24 17:20:09 ERROR TaskSetManager: Task 0 in stage 1.0 failed 1 times; 
aborting job
   22/03/24 17:20:09 INFO TaskSchedulerImpl: Removed TaskSet 1.0, whose tasks 
have all completed, from pool 
   22/03/24 17:20:09 INFO TaskSetManager: Lost task 1.0 in stage 1.0 (TID 2) on 
localhost, executor driver: java.lang.ClassCastException (java.lang.String 
cannot be cast to java.sql.Timestamp) [duplicate 1]
   22/03/24 17:20:09 INFO TaskSchedulerImpl: Removed TaskSet 1.0, whose tasks 
have all completed, from pool 
   22/03/24 17:20:09 INFO TaskSchedulerImpl: Cancelling stage 1
   22/03/24 17:20:09 INFO TaskSchedulerImpl: Killing all running tasks in stage 
1: Stage cancelled
   22/03/24 17:20:09 INFO DAGScheduler: ResultStage 1 (foreachPartition at 
Clickhouse.scala:79) failed in 0.485 s due to Job aborted due to stage failure: 
Task 0 in stage 1.0 failed 1 times, most recent failure: Lost task 0.0 in stage 
1.0 (TID 1, localhost, executor driver): java.lang.ClassCastException: 
java.lang.String cannot be cast to java.sql.Timestamp
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderBaseTypeStatement(Clickhouse.scala:359)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement$1.apply$mcVI$sp(Clickhouse.scala:406)
        at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:160)
        at 
org.apache.seatunnel.spark.sink.Clickhouse.org$apache$seatunnel$spark$sink$Clickhouse$$renderStatement(Clickhouse.scala:392)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:94)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1$$anonfun$apply$1.apply(Clickhouse.scala:91)
        at scala.collection.Iterator$class.foreach(Iterator.scala:891)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:91)
        at 
org.apache.seatunnel.spark.sink.Clickhouse$$anonfun$output$1.apply(Clickhouse.scala:79)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$28.apply(RDD.scala:980)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at 
org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2107)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
        at org.apache.spark.scheduler.Task.run(Task.scala:123)
        at 
org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:411)
        at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:417)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   
   Driver stacktrace:
   22/03/24 17:20:09 INFO DAGScheduler: Job 1 failed: foreachPartition at 
Clickhouse.scala:79, took 0.506832 s
   22/03/24 17:20:09 ERROR Seatunnel:
   ```
   
   
   ### Flink or Spark Version
   
   _No response_
   
   ### Java or Scala Version
   
   _No response_
   
   ### Screenshots
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to