【发布时间】:2018-06-28 19:24:51
【问题描述】:
在 Spark 2.1 中,我经常使用类似
的东西df = spark.read.parquet(/path/to/my/files/*.parquet)
即使使用不同的模式也可以加载镶木地板文件的文件夹。 然后我使用 SparkSQL 对数据框执行一些 SQL 查询。
现在我想尝试 Impala,因为我阅读了 wiki article,其中包含以下句子:
Apache Impala 是一个开源的大规模并行处理 (MPP) SQL 用于存储在运行 Apache Hadoop [...] 的计算机集群中的数据的查询引擎。
读取 Hadoop 文件格式,包括文本、LZO、SequenceFile、Avro、RCFile 和 Parquet。
所以听起来它也适合我的用例(并且执行速度可能更快)。
但是当我尝试这样的事情时:
CREATE EXTERNAL TABLE ingest_parquet_files LIKE PARQUET
'/path/to/my/files/*.parquet'
STORED AS PARQUET
LOCATION '/tmp';
我得到一个 AnalysisException
AnalysisException:无法推断架构,路径不是文件
所以现在我的问题是:是否可以使用 Impala 读取包含多个 parquet 文件的文件夹? Impala 会像 spark 一样执行模式合并吗?执行此操作需要什么查询?使用谷歌找不到任何关于它的信息。 (总是一个不好的迹象......)
谢谢!
【问题讨论】:
-
就个人而言,我会在 Impala 之前尝试 Drill。只是因为安装并不简单。如果您还没有使用 Cloudera CDH,即使是 Hive 或 Pig 也会更快地尝试
-
有一些相关的问题,可能也有帮助:stackoverflow.com/questions/56581105/…
标签: hadoop apache-spark-sql parquet impala