- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 SparkSQL 表(S3 中的 Parquet )中有效地选择单个分区。但是,我看到 Spark 打开表中所有 Parquet 文件的证据,而不仅仅是那些通过过滤器的文件。对于具有大量分区的表,这使得即使是小查询也很昂贵。
这是一个说明性示例。我使用 SparkSQL 和 Hive 元存储在 S3 上创建了一个简单的分区表:
# Make some data
df = pandas.DataFrame({'pk': ['a']*5+['b']*5+['c']*5,
'k': ['a', 'e', 'i', 'o', 'u']*3,
'v': range(15)})
# Convert to a SparkSQL DataFrame
sdf = hiveContext.createDataFrame(df)
# And save it
sdf.write.partitionBy('pk').saveAsTable('dataset',
format='parquet',
path='s3a://bucket/dataset')
dataset = hiveContext.table('dataset')
filtered_dataset = dataset.filter(dataset.pk == 'b')
print filtered_dataset.toPandas()
15/07/05 02:39:39 INFO DataSourceStrategy: Selected 1 partitions out of 3, pruned -200.0% partitions.
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/pk=a/part-r-00001.gz.parquet to seek to new offset 508
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/pk=a/part-r-00001.gz.parquet at pos 508
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/pk=b/part-r-00001.gz.parquet to seek to new offset 509
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/pk=b/part-r-00001.gz.parquet at pos 509
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/_common_metadata to seek to new offset 262
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/_common_metadata at pos 262
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/pk=c/part-r-00001.gz.parquet to seek to new offset 509
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/pk=c/part-r-00001.gz.parquet at pos 509
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/pk=b/part-r-00001.gz.parquet to seek to new offset -365
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/pk=b/part-r-00001.gz.parquet at pos 152
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/pk=a/part-r-00001.gz.parquet to seek to new offset -365
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/pk=a/part-r-00001.gz.parquet at pos 151
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/_common_metadata to seek to new offset -266
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/_common_metadata at pos 4
15/07/05 02:39:39 INFO S3AFileSystem: Reopening dataset/pk=c/part-r-00001.gz.parquet to seek to new offset -365
15/07/05 02:39:39 INFO S3AFileSystem: Actually opening file dataset/pk=c/part-r-00001.gz.parquet at pos 152
最佳答案
看看spark.sql.parquet.filterPushdown
, 默认设置为 false
因为 Spark 使用的 Parquet 版本中存在一些错误。
1.3/1.4可能可以使用,查看官方documentation .
我认为这在 Spark 1.5 中已修复。
关于amazon-s3 - 在简单的 SparkSQL 查询中未修剪分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226757/
Hive 外部表指向 S3 上的文件,ddl 包括按 eod 子句分区。一个文件夹下有 5 个子文件夹,每个子文件夹下面都有一个文件,用于不同的 partition_date。即 eod=201806
SparkSQL / DataFrames HBase-Spark连接器(在HBase-Spark模块中)利用Spark-1.2.0中引入的DataSource API (SPARK-3247),弥
我将 RDD[myClass] 转换为数据帧,然后将其注册为 SQL表 my_rdd.toDF().registerTempTable("my_rdd") 该表是可调用的,可以使用以下命令进行演示 %
我在这看到 DataBricks post ,SparkSql 中支持窗口函数,特别是我正在尝试使用 lag() 窗口函数。 我有几行信用卡交易,我已经对它们进行了排序,现在我想遍历这些行,并为每一行
我正在为 hive 使用远程 mysql 元存储。当我运行 hive 客户端时,它运行完美。但是当我尝试通过 spark-shell 或 spark-submit 使用 spark-sql 时,我无法
我有一个 Spark 作业,它正在将数据从 CSV 文件加载到 MySQL 数据库中。 一切正常,但最近我注意到 Spark 在插入阶段打开了许多连接(300 多个连接)。感觉就像每个插入语句都打开一
这段代码来自 Spark Programming Guide , # The result of loading a parquet file is also a DataFrame. parquet
我有一个 Scala spark DataFrame: df.select($"row_id", $"array_of_data").show +----------+----------------
我设计了以下函数来处理任何数字类型的数组: def array_sum[T](item:Traversable[T])(implicit n:Numeric[T]) = item.sum // Reg
我通过 df.saveAsTable 创建了一个持久表 当我运行以下查询时,我会收到这些结果 spark.sql("""SELECT * FROM mytable """).show() 我可以查看
我想通过 sparksql 删除一个配置单元表。 在安装了 hadoop 2.6、hive 2.0、spark 1.6 和 spark 2.0 的集群中。我在两个版本的 pyspark shell 和
我有一个要求,我需要计算 SparkSQL 中 Hive 表的重复行数。 from pyspark import SparkContext, SparkConf from pyspark.sql im
我有一个连接到 Postgres 数据库的 SparkSQL 的非常简单的设置,我正在尝试从一个表中获取一个 DataFrame,该 DataFrame 具有 X 个分区(假设为 2)。代码如下: M
有什么方法可以在 sparksql 中实现存储过程或函数等 sql 功能? 我知道 hbase 中的 hpl sql 和协处理器。但是想知道 spark 中是否有类似的东西。 最佳答案 您可以考虑使用
我正在使用 cloudera vm 10.0,spark 版本为 1.6。 登录 pyspark 控制台后,我正在尝试以下语句从配置单元中获取数据 sqlContext.sql("select * f
我想用 Spark SQL 2.0 执行以下查询 SELECT a.id as id, (SELECT SUM(b.points) FROM tableB b WHERE b.id = a.i
我正在使用 spark sql 对我的数据集运行查询。查询的结果很小,但仍然是分区的。 我想合并生成的 DataFrame 并按列对行进行排序。我试过 DataFrame result = spark
任何人都直接在 HBase 表上使用 SparkSQL,就像在 Hive 表上使用 SparkSQL。 我是spark新手。请指导我如何连接hbase和spark。如何查询hbase表。 最佳答案 A
我正在尝试从 SparkSQL 表(S3 中的 Parquet )中有效地选择单个分区。但是,我看到 Spark 打开表中所有 Parquet 文件的证据,而不仅仅是那些通过过滤器的文件。对于具有大量
我尝试使用 SparkSQL (v.1.3.0) 访问 PostgreSQL 数据库。在这个数据库中,我有一个表 CREATE TABLE test ( id bigint, values dou
我是一名优秀的程序员,十分优秀!