Как я могу использовать SQLContext (для выполнения SQL-запросов) в преобразовании Python?

#palantir-foundry #foundry-code-repositories

#палантир-литейное производство #литейный цех-код-хранилища

Вопрос:

Я сделал следующее в репозиториях кода

 @transform_df(  Output(test_dataset_path),  df=Input(og_dataset_path) ) def compute(ctx, df):  ctx.spark_session.sql(f'''  CREATE TABLE `test_dataset_path` AS  SELECT * FROM `og_dataset_path`  ''')   return ctx.spark_session.sql(f'''  SELECT * FROM `og_dataset_path`  ''')  

и это ошибка в коде:

 ctx.spark_session.sql(f''' CREATE TABLE `test_dataset_path` AS SELECT * FROM `og_dataset_path` ''')  

с ошибкой:

pyspar.sql.utils.Исключение AnanlysisException: Таблица или представление не найдены: og_dataset_path

Как я могу устранить эту ошибку?

Ответ №1:

Использование createOrReplaceTempView должно решить эту проблему:

 from transforms.api import transform_df, Input, Output  @transform_df(  Output("/Users/XXXXX/sqlcsvA2"),  ALL=Input("/datasources/locations/data/cleaned") ) def my_compute_function(ctx, ALL):  ALL.createOrReplaceTempView('ALL')  return ctx.spark_session.sql('select * from ALL limit 10')