2016-06-09 3 views
0

Я делаю следующий запрос на Спарк DataFrameСпарка DataFrame группеЕ и агрегация бросают NegativeArraySizeException

input 
    .select("id") 
    .groupBy("id") 
    .agg(count("*").as("count")) 

я получаю java.lang.NegativeArraySizeException

at org.apache.spark.unsafe.types.UTF8String.getBytes(UTF8String.java:234) 
at org.apache.spark.unsafe.types.UTF8String.toString(UTF8String.java:827) 
at org.apache.spark.sql.catalyst.expressions.GeneratedClass$SpecificMutableProjection.apply(Unknown Source) 
at org.apache.spark.sql.execution.aggregate.TungstenAggregationIterator$$anonfun$generateProcessRow$1.apply(TungstenAggregationIterator.scala:276) 
at org.apache.spark.sql.execution.aggregate.TungstenAggregationIterator$$anonfun$generateProcessRow$1.apply(TungstenAggregationIterator.scala:273) 
at org.apache.spark.sql.execution.aggregate.TungstenAggregationIterator.processInputs(TungstenAggregationIterator.scala:533) 

ответ

0

Ниже следует работать

input.groupBy("id").count() 
+0

Запрос работает в большинстве случаев, но сбой и исключение исключает только некоторые входные данные. Вот мой фактический запрос ввода .select ("id", "quantity") .groupBy ("id") .agg (sum ("quantity")) –

+0

Можете ли вы добавить некоторые примеры данных, которые нарушают код? – David

Смежные вопросы