Я знаю, что могу использовать
%pyspark
df = sqlContext.sql('select * from train_table')
И я могу использовать df.registerTempTable('xxx')
, чтобы сделать df
доступным в %sql
.
Но иногда я хотел бы использовать %sql
нарисовать сюжет.Расчет может быть продолжительным:
%sql
select C.name, count(C.name) from orderitems as A
left join clientpagemodules as C on C.code = A.from_module
left join orders as B on A.ref_id = B.id
left join products as P on P.id = A.product_id
where B.time_create > (unix_timestamp(NOW()) - 3600*24*30) *1000 group by C.name
Если я решу написать некоторый код для очистки результата, мне придется переместиться выше sql в df = sqlContext.sql(sql)
, вычислить еще раз.
Интересно, есть лиЛюбой способ получить% sql результата в% pyspark?