2016-11-01 3 views
1

Я перед проблемой преобразования сильфона запроса в свече-SQL в pyspark запроса SQL-сервере являетсяКак выполнить «выбрать топ 1 х из таблицы» заявления в свече SQL

coalesce((Select top 1 f2.ChargeAmt from Fact_CMCharges f2 
     where f2.BldgID = f.BldgID 
     and f2.LeaseID = f.LeaseID 
     and f2.IncomeCat = f.IncomeCat 
     and f2.Period < f.Period 
     and f2.ActualProjected = 'Lease' 
     order by f2.Period desc),0) as Charge 

я не нашел замену ключа слово top в pyspark sql. Пожалуйста, помогите мне как я могу преобразовать этот запрос в py-spark sql

+0

Я не знаком с sql-сервером. Не могли бы вы объяснить, что он делает, и ссылку на ссылку для своей документации? – eliasah

+0

«верх» работает как ключевое слово limit в MYSQL, как я понял. здесь эта команда фактически выбирает верхнюю 1 строку из заданного условия, в которой оператор clause.the coalesce будет выполнять этот оператор, если он является истинным или возвращает 0 по умолчанию – Kalyan

+0

Можете ли вы привести пример входных данных и ожидаемого результата, потому что он все еще не очень ясен , – eliasah

ответ

1

Поскольку вы сказали, что Spark-SQL и если у вас есть DF, то вы можете использовать что-то вроде этого.

df.limit(1).show() 
+0

спасибо за ответ. хотя я не пробовал подход к кадре данных, но я написал ограничение 1 в конце SQL-запроса. и у меня есть это сообщение об ошибке pyspark.sql.utils.AnalysisException: u'Correlated скалярные подзапросы должны быть агрегированы: GlobalLimit 1 \ n + - LocalLimit 1 \ n – Kalyan

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

  • Нет связанных вопросов^_^