SNOWPARK-如何使用在另一个sql命令下游的数据帧中返回的sql命令



如何在sql_df1中返回sql命令并在另一个sql命令中自动使用此命令

sql_df1= test_session.sql("select get_ddl('TABLE', 'A.TEST')")
sql_df1.show()
---------------------------------
|"GET_DDL('TABLE', 'A.TEST')"  |
---------------------------------
|create or replace TABLE TEST (  |
|   ID NUMBER(38,0),         |
|   AGE NUMBER(38,0),             |
|   YEAR NUMBER(38,0)             |
|);                             |
---------------------------------

我想在一个新的sql命令中的数据帧中使用上面的命令,比如下面的

sql_df2= test_session.sql(sql_df1)

有几种方法可以做到这一点。

如果你要进口大熊猫,那么像这样的东西会起作用:

df = session.sql("SELECT GET_DDL('table', 'CITIBIKE_TRIPS')")
pdf = df.to_pandas()
print(pdf.values[:1][0][0])

我得到的输出:

create or replace TABLE CITIBIKE_TRIPS (
RIDE_ID VARCHAR(16777216),
RIDEABLE_TYPE VARCHAR(16777216),
STARTED_AT TIMESTAMP_NTZ(9),
ENDED_AT TIMESTAMP_NTZ(9),
START_STATION_NAME VARCHAR(16777216),
START_STATION_ID NUMBER(38,0),
END_STATION_NAME VARCHAR(16777216),
END_STATION_ID NUMBER(38,0),
START_LAT FLOAT,
START_LNG FLOAT,
END_LAT FLOAT,
END_LNG FLOAT,
MEMBER_CASUAL VARCHAR(16777216)
);

或者在数据帧上使用直接切片(虽然不是很漂亮(:

df = session.sql("SELECT GET_DDL('table', 'CITIBIKE_TRIPS')").collect()
ddl = str(df).split('=')[1].split(')]')[0]
print(ddl)

我得到:

'create or replace TABLE CITIBIKE_TRIPS (ntRIDE_ID VARCHAR(16777216),ntRIDEABLE_TYPE VARCHAR(16777216),ntSTARTED_AT TIMESTAMP_NTZ(9),ntENDED_AT TIMESTAMP_NTZ(9),ntSTART_STATION_NAME VARCHAR(16777216),ntSTART_STATION_ID NUMBER(38,0),ntEND_STATION_NAME VARCHAR(16777216),ntEND_STATION_ID NUMBER(38,0),ntSTART_LAT FLOAT,ntSTART_LNG FLOAT,ntEND_LAT FLOAT,ntEND_LNG FLOAT,ntMEMBER_CASUAL VARCHAR(16777216)n);'

相关内容

  • 没有找到相关文章

最新更新