2017-07-20 15 views
0

スカラのいずれかでのHadoopに格納されるか、またはエラーをpyspark寄木細工のファイルを読んでいる間に発生:同じエラーにpysparkで寄木細工ファイルを読み込んでいるときにスキーマを指定するにはどうすればよいですか?

#scala  
var dff = spark.read.parquet("/super/important/df") 
    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$8.apply(DataSource.scala:189) 
     at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$8.apply(DataSource.scala:189) 
     at scala.Option.getOrElse(Option.scala:121) 
     at org.apache.spark.sql.execution.datasources.DataSource.org$apache$spark$sql$execution$datasources$DataSource$$getOrInferFileFormatSchema(DataSource.scala:188) 
    at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:387) 
    at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152) 
    at org.apache.spark.sql.DataFrameReader.parquet(DataFrameReader.scala:441) 
    at org.apache.spark.sql.DataFrameReader.parquet(DataFrameReader.scala:425) 
    ... 52 elided 

又は

sql_context.read.parquet(output_file) 

結果を。

エラーメッセージは、何をすべきかについてはっきりしています。Parquetのスキーマを推論できません。手動で指定する必要があります。。 しかし、どこで指定できますか?

Spark 2.1.1、Hadoop 2.5、データフレームはpysparkの助けを借りて作成されます。ファイルは10の区画に分割されます。

+0

これを試すことができますかvar dff = spark.read.parquet( "/ super/important/df")。toDF( "ColumnName1、" ColumnName2 ") – Bhavesh

答えて

1

このエラーは通常発生します。 たとえば、空のDataFrameを作成し、それを寄せ木で書き込んでから読み取った場合、このエラーが表示されます。 書き込む前に、DataFrameが空の場合はrdd.isEmpty()でチェックできます。

0

私はこのことができます同じ

enter image description here

希望のための迅速な実装を行っている!! ...あなたは寄木細工のように空のディレクトリを読み取ろうとするとき

関連する問題