Требование не выполнено: переупорядочение прервано - Spark Cassandra - PullRequest
2 голосов
/ 30 апреля 2019

код -

val configDetails2 = configDetails1
    .join(skuDetails, configDetails1.col("sku_num") === skuDetails.col("sku") &&
      configDetails1.col("ccn") === skuDetails.col("ccn"), "left_outer")
    .select(
      configDetails1.col("*"),
      skuDetails.col("part"),
      skuDetails.col("part_description"),
      skuDetails.col("part_qty"))
    .withColumn("item_name", when($"part".isNull, "DBNULL").otherwise($"part"))
    .withColumn("item_description", when($"part_description".isNull, "DBNULL").otherwise($"part_description"))
    .withColumn("item_qty", when($"part_qty".isNull, lit(0)).otherwise($"part_qty"))
    .drop("part", "part_description", "part_qty")

  val itemKey = configDetails2.select("item_name").rdd
  val itemMaster = itemKey
    .joinWithCassandraTable("dig_master", "item_master")
    .select("buyer", "cfg_name".as("cfg"), "item", "ms_name".as("scheduler")).map(_._2) 

Ошибка -

Причина: java.lang.IllegalArgumentException: требование не выполнено: Переупорядочение прервано ({ccn # 98, sku_num # 54, sku # 223, часть # 224, ccn # 243}, ArrayBuffer (sku_num, ccn, sku, part, ccn)) не было ({ccn # 98, ccn # 222, sku_num # 54, sku # 223, часть # 224, ccn # 243}, ArrayBuffer (sku_num, ccn, sku, часть, ccn, sku, часть, ccn, sku_num, ccn, sku, часть, ccn))

в scala.Predef $ .require (Predef.scala: 224) в org.apache.spark.sql.cassandra.execution.DSEDirectJoinStrategy.apply (DSEDirectJoinStrategy.scala: 69) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 1.Apply (QueryPlanner.scala: 62) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 1.Apply (QueryPlanner.scala: 62) на scala.collection.Iterator $$ anon $ 12.nextCur (Iterator.scala: 434) на scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 440) на scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 439) в org.apache.spark.sql.catalyst.planning.QueryPlanner.plan (QueryPlanner.scala: 92) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ применять $ 2.Apply (QueryPlanner.scala: 77) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ применять $ 2.Apply (QueryPlanner.scala: 74) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.Apply (TraversableOnce.scala: 157) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.Apply (TraversableOnce.scala: 157) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.foldLeft (TraversableOnce.scala: 157) в scala.collection.AbstractIterator.foldLeft (Iterator.scala: 1336) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.Apply (QueryPlanner.scala: 74) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.Apply (QueryPlanner.scala: 66) на scala.collection.Iterator $$ anon $ 12.nextCur (Iterator.scala: 434) на scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 440) в org.apache.spark.sql.catalyst.planning.QueryPlanner.plan (QueryPlanner.scala: 92) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ применять $ 2.Apply (QueryPlanner.scala: 77) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ применять $ 2.Apply (QueryPlanner.scala: 74) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.Apply (TraversableOnce.scala: 157) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.Apply (TraversableOnce.scala: 157) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.foldLeft (TraversableOnce.scala: 157) в scala.collection.AbstractIterator.foldLeft (Iterator.scala: 1336) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.Apply (QueryPlanner.scala: 74) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.Apply (QueryPlanner.scala: 66) на scala.collection.Iterator $$ anon $ 12.nextCur (Iterator.scala: 434) на scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 440) в org.apache.spark.sql.catalyst.planning.QueryPlanner.plan (QueryPlanner.scala: 92) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ применять $ 2.Apply (QueryPlanner.scala: 77) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ применять $ 2.Apply (QueryPlanner.scala: 74) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.Apply (TraversableOnce.scala: 157) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.Apply (TraversableOnce.scala: 157) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.foldLeft (TraversableOnce.scala: 157) в scala.collection.AbstractIterator.foldLeft (Iterator.scala: 1336) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.apply (QueryPlanner.scala: 74) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.apply (QueryPlanner.scala: 66) в scala.collection.Iterator $$ anon $ 12.nextCur (Iterator.scala:434) в scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 440) в org.apache.spark.sql.catalyst.planning.QueryPlanner.plan (QueryPlanner.scala: 92) в org.apache.spark.sql.execution.QueryExecution.sparkPlan $ lzycompute (QueryExecution.scala: 84) в org.apache.spark.sql.execution.QueryExecution.sparkPlan (QueryExecution.scala: 80) в org.apache.spark.sql.execution.u.executedPlan $ lzycompute (QueryExecution.scala: 89) в org.apache.spark.sql.execution.QueryExecution.executedPlan (QueryExecution.scala: 89) в org.apache.spark.sql.execution.QueryExecution.toRdd $ lzycomputeution.scala: 92) в org.apache.spark.sql.execution.QueryExecution.toRdd (QueryExecution.scala: 92) в org.apache.spark.sql.Dataset.rdd $ lzycompute (Dataset.scala: 2590) в организации.apache.spark.sql.Dataset.rdd (Dataset.scala: 2587) в core.CollabStandardConfig $ .delayedEndpoint $ core $ CollabStandardConfig $ 1 (CollabStandardConfig.scala: 185)

невозможно, не удалось найтиконкретные ссылки на эту ошибку.Любая помощь приветствуется.

1 Ответ

1 голос
/ 02 мая 2019

Вы обновили версию scala 2.10 до 2.11?Затем попробуйте использовать следующие параметры:

 val itemKey = configDetails2.select("item_name").rdd
  val itemMaster = itemKey
    .joinWithCassandraTable("dig_master", "item_master")
    .select("buyer", "cfg_name".as("cfg"), "item", "ms_name".as("scheduler")).map(_._2) 

Измените приведенный выше код на SQL-соединение как фрейм данных вместо преобразования в Dataframe в набор данных.

...