partitioning相关内容
我需要使用 Spark SQL HiveContext 从 Hive 表加载数据并加载到 HDFS.默认情况下,来自 SQL 输出的 DataFrame 有 2 个分区.为了获得更多的并行性,我需要更多的 SQL 分区.HiveContext 中没有重载方法来获取分区数参数. RDD 的重新分区会导致改组并导致更多的处理时间. > val result = sqlContext.sq
..
我在集群模式下运行 spark 并通过 JDBC 从 RDBMS 读取数据. 根据 Spark docs,这些分区参数描述了从多个worker并行读取时如何对表进行分区: partitionColumn lowerBound upperBound numPartitions 这些是可选参数. 如果我不指定这些会发生什么: 只有 1 个工作人员读取了整个数据?
..
我已经开始在 Spark 1.4.0 中使用 Spark SQL 和 DataFrames.我想在 Scala 中的 DataFrames 上定义自定义分区器,但不知道如何执行此操作. 我正在使用的其中一个数据表包含一个交易列表,按帐户分类,类似于以下示例. 账户日期类型金额1001 2014-04-01 采购 100.001001 2014-04-01 采购 50.001001 2014
..
我有按 date 分区的镶木地板数据 &hour,文件夹结构: events_v3-- 事件日期=2015-01-01-- event_hour=2015-01-1-- part10000.parquet.gz-- 事件日期=2015-01-02-- event_hour=5-- part10000.parquet.gz 我通过 spark 创建了一个表 raw_events 但是当我尝试查询
..
根据 Spark 文档,只有 RDD 操作可以触发 Spark 作业,并且在对其调用操作时会延迟评估转换. 我看到 sortBy 转换函数被立即应用,它在 SparkUI 中显示为作业触发器.为什么? 解决方案 sortBy 是使用 sortByKey 实现的,它依赖于 RangePartitioner (JVM) 或分区函数 (Python).当您调用 sortBy/sortByK
..
我想检查我们如何获取有关每个分区的信息,例如总数.当 Spark 作业以部署模式作为纱线集群提交以在控制台上记录或打印时,驱动程序端每个分区中的记录. 解决方案 您可以像这样获取每个分区的记录数: df.rdd.mapPartitionsWithIndex{case (i,rows) =>迭代器((i,rows.size))}.toDF("partition_number","numbe
..
在 Spark-land 中有几个相似但又不同的概念,围绕着如何将工作分派到不同节点并同时执行.具体来说,有: Spark Driver 节点 (sparkDriverCount) 一个 Spark 集群可用的工作节点数量 (numWorkerNodes) Spark 执行器的数量(numExecutors) 所有worker/executors同时操作的DataFrame (data
..
当我执行以下命令时: scala>val rdd = sc.parallelize(List((1,2),(3,4),(3,6)),4).partitionBy(new HashPartitioner(10)).persist()rdd: org.apache.spark.rdd.RDD[(Int, Int)] = ShuffledRDD[10] at partitionBy at :22标度>
..
我的问题是由计算 spark 数据帧中连续行之间的差异的用例触发的. 例如,我有: >>>df.show()+-----+------------+|索引|列1|+-----+------------+|0.0|0.58734024||1.0|0.67304325||2.0|0.85154736||3.0|0.5449719|+-----+------------+ 如果我选择使用“
..
我正在尝试将数据从 PostgreSQL 表中的表移动到 HDFS 上的 Hive 表.为此,我想出了以下代码: val conf = new SparkConf().setAppName("Spark-JDBC").set("spark.executor.heartbeatInterval","120s").set("spark.network.timeout","12000s").set(
..
我需要使用 Spark SQL HiveContext 从 Hive 表加载数据并加载到 HDFS.默认情况下,来自 SQL 输出的 DataFrame 有 2 个分区.为了获得更多的并行性,我需要更多的 SQL 分区.HiveContext 中没有重载方法来获取分区数参数. RDD 的重新分区会导致改组并导致更多的处理时间. > val result = sqlContext.sq
..
我在集群模式下运行 spark 并通过 JDBC 从 RDBMS 读取数据. 根据 Spark docs,这些分区参数描述了从多个worker并行读取时如何对表进行分区: partitionColumn lowerBound upperBound numPartitions 这些是可选参数. 如果我不指定这些会发生什么: 只有 1 个工作人员读取了整个数据?
..
我已经开始在 Spark 1.4.0 中使用 Spark SQL 和 DataFrames.我想在 Scala 中的 DataFrames 上定义自定义分区器,但不知道如何执行此操作. 我正在使用的其中一个数据表包含一个交易列表,按帐户分类,类似于以下示例. 账户日期类型金额1001 2014-04-01 采购 100.001001 2014-04-01 采购 50.001001 2014
..
我阅读了 HashPartitioner.不幸的是,除了 API 调用之外,没有任何解释.我假设 HashPartitioner 根据键的散列对分布式集进行分区.例如,如果我的数据就像 (1,1), (1,2), (1,3), (2,1), (2,2), (2,3) 所以分区器会把它放到不同的分区中,相同的键落在同一个分区中.但是我不明白构造函数参数的重要性 new HashPartiton
..
使用 KTable 时,当实例/消费者数量等于分区数量时,Kafka 流不允许实例从特定主题的多个分区中读取.我尝试使用 GlobalKTable 来实现这一点,这样做的问题是数据将被覆盖,并且无法对其应用聚合. 假设我有一个名为“data_in"的主题,有 3 个分区(P1、P2、P3).当我运行 Kafka 流应用程序的 3 个实例(I1、I2、I3)时,我希望每个实例都从“data_i
..
Kafka Streams 中的状态存储是在内部创建的.状态存储按键分区,但不允许提供除键以外的分区(据我所知). 问题 如何控制 state-store 内部创建的主题的分区数?状态存储主题如何推断默认使用的分区数量和分区,以及如何覆盖? 如果您想通过除传入键值记录的键以外的其他内容来分区状态存储并进行共同分区,如何解决此问题?在这种情况下,我想通过比我的常规键更具体的东西进行
..
我想在 Apache Flink 中实现以下场景: 给定一个有 4 个分区的 Kafka 主题,我想在 Flink 中使用不同的逻辑独立处理分区内数据,具体取决于事件的类型. 特别地,假设输入 Kafka 主题包含之前图像中描述的事件.每个事件都有不同的结构:分区 1 具有字段“a";作为键,分区 2 具有字段“b";作为关键等.在 Flink 中,我想根据事件应用不同的业务逻辑,所以
..
我有一些 Samza 作业运行所有读取来自 Kafka 主题的消息并将新消息写入新主题.为了发送新消息,我使用了 Samza 内置的 OutgoingMessageEnvelope.还使用 MessageCollector 发送新消息.它看起来像这样: collector.send(new OutgoingMessageEnvelope(SystemStream, newMessage)) 有
..
我知道分区是在 Kafka Broker 之间拆分的.但分裂是基于什么?.例如,如果我有 3 个代理和 6 个分区,如何确保每个代理将有 2 个分区?Kafka 目前是如何进行这种拆分的? 解决方案 分配策略是一个内部实现细节,没有记录,因为它可以随时更改.因此,您不应该依赖此算法保持不变.此外,您无法影响/配置此内部策略. 基本策略是确保负载平衡,即将分区分配给分配的分区比其他代理
..
使用 KTable 时,当实例/消费者数量等于分区数量时,Kafka 流不允许实例从特定主题的多个分区中读取.我尝试使用 GlobalKTable 来实现这一点,这样做的问题是数据将被覆盖,并且无法对其应用聚合. 假设我有一个名为“data_in"的主题,有 3 个分区(P1、P2、P3).当我运行 Kafka 流应用程序的 3 个实例(I1、I2、I3)时,我希望每个实例都从“data_i
..