Spark Zeppelin: как получить% sql результат в интерпретаторе% pyspark? - PullRequest
0 голосов
/ 15 февраля 2019

Я знаю, что могу использовать

%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?

1 Ответ

0 голосов
/ 24 февраля 2019

Я не знаю, как это сделать после того, как вы выполнили оператор sql, но вы можете получить доступ к временной таблице, созданной в% sql из% pyspark, когда вы зарегистрируете ее как временное представление изначально:

%sql
--initial step
CREATE OR REPLACE TEMPORARY VIEW temp_bla AS select * from YOURSTATEMENT

%sql
--your work as usual
Select * from temp_bla

%pyspark
--and continuing in pyspark
spark.sql('select * from temp_bla').show()
...