Показано, что число данных в кадре равно 4067

ботаем спарк 2.3.0 наAWW EMR, ПоследующийDataFrame "df"не пустой и скромного размера:

scala> df.count
res0: Long = 4067

Следующий код хорошо работает для записиdf вhdfs:

   scala> val hdf = spark.read.parquet("/tmp/topVendors")
hdf: org.apache.spark.sql.DataFrame = [displayName: string, cnt: bigint]

scala> hdf.count
res4: Long = 4067

Однако, используя тот же код для записи в локальныйparquet или жеcsv файл заканчивается пустыми результатами:

df.repartition(1).write.mode("overwrite").parquet("file:///tmp/topVendors")

scala> val locdf = spark.read.parquet("file:///tmp/topVendors")
org.apache.spark.sql.AnalysisException: Unable to infer schema for Parquet. It must be specified manually.;
  at org.apache.spark.sql.execution.datasources.DataSource$anonfun$9.apply(DataSource.scala:207)
  at org.apache.spark.sql.execution.datasources.DataSource$anonfun$9.apply(DataSource.scala:207)
  at scala.Option.getOrElse(Option.scala:121)

Мы можем видеть, почему это терпит неудачу:

 ls -l /tmp/topVendors
total 0
-rw-r--r-- 1 hadoop hadoop 0 Jul 30 22:38 _SUCCESS

Так что естьнет паркет файл пишется.

Я пробовал это, может быть, двадцать раз и для обоихcsv а такжеparquet и на двух разныхEMR Серверы: такое же поведение проявляется во всех случаях.

ЭтоEMR конкретная ошибка? Более общийEC2 ошибка? Что-то другое? Этот код работает наspark наmacos.

В случае, если это имеет значение - вот информация о версии:

Release label:emr-5.13.0
Hadoop distribution:Amazon 2.8.3
Applications:Spark 2.3.0, Hive 2.3.2, Zeppelin 0.7.3

Ответы на вопрос(2)

Ваш ответ на вопрос