2017-09-05 5 views
0

私はDatabricksでETLを実行してBigQueryに書き込みます。私は "WRITE_TRUNCATE"にコードを取得しようとしています、別名、データが実行されるたびに上書きします。これには、BigQueryの設定を変更する必要があります。Databricks ETL - > BigQuery、WRITE_TRUNCATEが機能しない

私はたくさんのことを試みましたが、うまく動作しませんでした。ここに私の現在のコードスニペットは次のとおりです。

import com.google.cloud.hadoop.io.bigquery.BigQueryConfiguration 
val conf = sc.hadoopConfiguration 
conf.set(BigQueryConfiguration.OUTPUT_TABLE_WRITE_DISPOSITION_KEY, "WRITE_TRUNCATE") 

これはエラーを送信します。

"error: value OUTPUT_TABLE_WRITE_DISPOSITION_KEY is not a member of object com.google.cloud.hadoop.io.bigquery.BigQueryConfiguration" 

任意のアイデア?ありがとうございました!

+0

[link](https://github.com/GoogleCloudPlatform/bigdata-interop/issues/43)を見ましたか?具体的には: 'conf.set(" mapreduce.job.outputformat.class "、classOf [IndirectBigQueryOutputFormat [、]]。getName)' –

+0

はい、それを見て、バリエーションを試してみました。私はそれを実行したときにもデータを複製した –

答えて

0

構成を設定するには、次のコードブロックを試してみてください。

import com.google.cloud.hadoop.io.bigquery.output.BigQueryOutputConfiguration; 
    import com.google.cloud.hadoop.io.bigquery.BigQueryFileFormat; 
    import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; 
    import com.google.cloud.hadoop.io.bigquery.output.IndirectBigQueryOutputFormat; 

    BigQueryOutputConfiguration.configure(conf ,projectId ,outputDatasetId ,outputTableId,outputSchema ,Temp_Gcs_path ,BigQueryFileFormat.NEWLINE_DELIMITED_JSON ,classOf[TextOutputFormat[_,_]]) 
    ... 
    conf.set("mapreduce.job.outputformat.class",classOf[IndirectBigQueryOutputFormat[,]].getName) 

あなたが質問の詳細を提供することができればあなたが達成しようとしているもの、すなわち、問題を理解することが容易になります、完全な擬似あなたのユースケースのコードなど

関連する問題