簡體   English   中英

從Spark-CSV編寫實木復合地板文件

[英]Writing a parquet file from Spark-CSV

我想使用spark-csv將csv轉換為實木復合地板。 讀取文件並將其另存為數據集即可。 不幸的是,我無法將其寫為實木復合地板文件。 有什么辦法可以做到這一點?

SparkSession spark = SparkSession.builder().appName("Java Spark SQL basic example")
        .config("spark.master", "local").config("spark.sql.warehouse.dir", "file:///C:\\spark_warehouse")
        .getOrCreate();

Dataset<Row> df = spark.read().format("com.databricks.spark.csv").option("inferSchema", "true")
        .option("header", "true").load("sample.csv");

df.write().parquet("test.parquet");

2011年4月17日09:57:32錯誤執行器:階段3.0(TID 3)中的任務0.0中的異常java.lang.NoSuchMethodError:org.apache.parquet.column.ParquetProperties.builder()Lorg / apache / parquet / column / ParquetProperties $ Builder; 在org.apache.parquet.hadoop.ParquetOutputFormat.getRecordWriter(ParquetOutputFormat.java:362)在org.apache.parquet.hadoop.ParquetOutputFormat.getRecordWriter(ParquetOutputFormat.java:350)在org.apache.spark.sql.execution.datasources org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat $$ anon $ 1.newInstance(ParquetFileFormat.scala:145)上的.parquet.ParquetOutputWriter。(ParquetOutputWriter.scala:37)在org.apache.spark.sql中。 execute.datasources.FileFormatWriter $ SingleDirectoryWriteTask。(FileFormatWriter.scala:234)位於org.apache.spark.sql.execution.datasources.FileFormatWriter $ .org $ apache $ spark $ sql $ execution $ datasources $ FileFormatWriter $$ executeTask(FileFormatWriter。 scala:182),位於org.apache.spark.sql.execution.datasources的org.apache.spark.sql.execution.datasources.FileFormatWriter $$ anonfun $ write $ 1 $$ anonfun $ 3.apply(FileFormatWriter.scala:129)處。 FileFormatWriter $$ anonfun $ write $ 1 $$ anonfun $ 3.apply(FileFormatWriter.scala:128)在org.apache.spark.scheduler.ResultTask.runTask(Res ultTask.scala:87),位於org.apache.spark.scheduler.Task.run(Task.scala:99),位於org.apache.spark.executor.Executor $ TaskRunner.run(Executor.scala:282),位於java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)

我用一種解決方法修復了它。 我不得不注釋掉這兩個實木復合地板的依賴關系,但我不太確定為什么它們會互相干擾:

<!--        <dependency> -->
<!--            <groupId>org.apache.parquet</groupId> -->
<!--            <artifactId>parquet-hadoop</artifactId> -->
<!--            <version>1.9.0</version> -->
<!--        </dependency> -->


<!--        <dependency> -->
<!--            <groupId>org.apache.parquet</groupId> -->
<!--            <artifactId>parquet-common</artifactId> -->
<!--            <version>1.9.0</version> -->
<!--        </dependency> -->

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM