这与上面文章中给出的答案不同
我收到一个错误,显示
pyspark.sql.utils.AnalysisException: u'Unable to infer schema for Parquet. It must be specified manually.;'
当我尝试使用Spark 2.1.0读取拼花地板文件时
data = spark.read.parquet('/myhdfs/location/')
我已经检查过了,通过Hue WebPortal查看impala表,文件/表不是空的。另外,我存储在类似目录中的其他文件读起来也非常好。对于记录,文件名包含连字符,但没有下划线或句号/句点。
因此,在加载拼花地板文件时,以下帖子中的答案都无法推断模式
有什么想法吗?
我遇到了同样的问题,但我在网上找到的答案都不适合我。原来我是这样写代码的:
data = spark.read.parquet("/myhdfs/location/anotherlevel/")
所以,使用double”时,我的问题就解决了。
data = spark.read.parquet('/myhdfs/location/anotherlevel/')
分享以防对任何人都有帮助
事实证明,我之所以出现此错误,是因为目录结构有另一个级别。以下是我所需要的;
data = spark.read.parquet('/myhdfs/location/anotherlevel/')
我正在运行EMR笔记本中的所有代码。 火花版本 temp_df.print模式 温度df。显示(2) 温度df。写拼花地板(path='s3://project7878/clean\u data/temperatures.parquet',mode='overwrite',partitionBy='year') 火花阅读拼花地板(path='s3://project7878/clean\u dat
我将spark java代码实现为,数据集输入=spark。读取()。拼花地板(configuration.getInputDataLocation()); 但是inputDataLocation(Azure存储帐户容器中的文件夹)可能没有任何数据,并且在这种情况下引发异常,用户类引发异常:org。阿帕奇。火花sql。AnalysisException:无法推断拼花地板的架构。必须手动指定。 有没
我有一个数据帧,它是由运行特定日期的每日批处理创建的,然后保存在HDFS(Azure Data Lake Gen 2)中。 它是用这样的东西保存的 如您所见,我没有对数据帧进行分区,因为它只包含一个日期。 例如,第一天的第一个文件将存储在文件夹中 交易/2019/08/25 然后第二天,它就会在文件夹里 贸易/2019/08/26 问题是,当所有数据都放好后,日期上的过滤器谓词是否仍会被按下,HD
我正在尝试创建AWS Glue ETL作业,将存储在S3中的拼花文件中的数据加载到Redshift表中。拼花文件是使用带有“简单”文件模式选项的熊猫写入S3中的多个文件夹的。布局如下所示: s3://bucket/parquet\u table/01/file\u 1。拼花地板 s3://bucket/parquet\u table/01/file\u 2。拼花地板 S3://桶/parquet_
我正在尝试动态(不在Hive DDL中列出列名和类型)在镶木地板数据文件上创建一个Hive外部表。我有底层镶木地板文件的Avro模式。 我尝试使用以下DDL: 我的 Hive 表是使用正确的架构成功创建的,但是当我尝试读取数据时: 我得到以下错误: 有没有一种方法可以成功地创建和读取Parquet文件,而不用在DDL中提到列名和类型列表?
我对火花有点陌生。在我的spark calc完成后,我目前在amazon s3上看到一些奇怪的缓慢的拼花。 写一个小文件需要1.8小时(写时有2个分区) 我用一个不同的更大的文件(更多行更多列)运行了相同的spark calc(编写时有3个分区) 写入调用本身: