переход из авро в паркет java - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь преобразовать avro-файлы, сгенерированные в паркет, используя spark.

Вот некоторые из опций, которые я пробовал: читать avro-файл в контексте spark sql -> записывать во временную таблицу ->читать все записи во фрейме данных и записывать в файл паркета.

Код ниже:

    Dataset<Row> df = sqlContext.read().format("com.databricks.spark.avro")
              .load(inputDirectory);
    df.show();
    df.printSchema();
    df.createOrReplaceTempView("tempview");
    StructType schema = df.schema();
    JavaRDD rdd = df.toJavaRDD();
    Dataset<Row> sqlDF = sqlContext.createDataFrame(rdd, schema);
    String fileName = "parquet_files";
    //Dataset<Row> sqlDF = spark.sql("SELECT * FROM tempview");
    sqlDF.show();
    sqlDF.schema();
    sqlDF.write()
    .mode(SaveMode.Overwrite)
    .parquet(fileName);

Во-вторых, я попытался скопировать его в RDD, а затем попытался записать в файл.В обоих случаях у меня была одна и та же ошибка.

   Caused by: java.lang.NoSuchMethodError: org.apache.parquet.column.values.ValuesReader.initFromPage(I[BI)V
at org.apache.spark.sql.execution.datasources.parquet.VectorizedColumnReader.readPageV1(VectorizedColumnReader.java:606)
at org.apache.spark.sql.execution.datasources.parquet.VectorizedColumnReader.access$000(VectorizedColumnReader.java:47)
at org.apache.spark.sql.execution.datasources.parquet.VectorizedColumnReader$1.visit(VectorizedColumnReader.java:540)

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...