0
votes

spark version: 2.1.0

I want to insert Datasetinto hive withing partitioned by 'dt' field, but it failed.

when using 'insertInto()', the error is : 'spark2.0 insertInto() can't be used together with partitionBy()'

when using 'saveAsTale()', the error is: 'Saving data in the Hive serde table ad.ad_industry_user_profile_incr is not supported yet. Please use the insertInto() API as an alternative.'

And, the core code is as follows:

        rowRDD.foreachRDD(new VoidFunction<JavaRDD<Row>>() {
            @Override
            public void call(JavaRDD<Row> rowJavaRDD) throws Exception {
                Dataset<Row> profileDataFrame = hc.createDataFrame(rowJavaRDD, schema).coalesce(1);
                profileDataFrame.write().partitionBy("dt").mode(SaveMode.Append).insertInto(tableName);
//                profileDataFrame.write().partitionBy("dt").mode(SaveMode.Append).saveAsTable(tableName);
            }
        });

Help me, please ~

1

1 Answers

-1
votes

using profileDataFrame.write().mode(SaveMode.Append).insertInto(tableName) without .partitionBy("dt")