Ваш пакет Spark не включает скомпилированный код Spark. Вот почему вы получили сообщение об ошибке из этих сценариев spark-submit
и spark-shell
.
Вы должны загрузить одну из готовых версий в разделе «Выберите тип пакета» на странице загрузки Spark .
Rewrite используя MAX (CASE ...) и GROUP BY:
select
field1
, [1] = max(case when RowID = 1 then field2 end)
, [2] = max(case when RowID = 2 then field2 end)
, [3] = max(case when RowID = 3 then field2 end)
, [4] = max(case when RowID = 4 then field2 end)
from (
select
field1
, field2
, RowID = row_number() over (partition by field1 order by field2)
from tblname
) SourceTable
group by
field1
Оттуда вы можете добавить field3, field4 и т. д.
Я не уверен, используете ли вы MS SQL Server, но если вы ... Возможно, вы захотите взглянуть на функциональность CROSS APPLY движка. По сути, это позволит вам применить результаты UDF с табличным значением к набору результатов. Это потребует от вас поместить ваш сводный запрос в набор результатов с табличным значением.
http://weblogs.sqlteam.com/jeffs/archive/2007/10/18/sql-server-cross-apply.aspx