如何在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);'