Ich habe eine UDF erstellt und kann die Antwortdaten abrufen Über die API habe ich versucht, diese Daten mit session.write_pandas zu speichern, erhalte jedoch die Fehlermeldung pyarrow.lib.ArrowInvalid: ('Listen- und Nichtlistenwerte können nicht gemischt werden, Nicht-Null-Werte', 'Konvertierung für Spalte fimFranchisee fehlgeschlagen mit type object')
Hier ist mein Beispielcode:
Code: Select all
CREATE OR REPLACE PROCEDURE fetch_api_data()
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = 3.8
PACKAGES = ('requests', 'pandas', 'snowflake-snowpark-python')
HANDLER = 'getData'
EXTERNAL_ACCESS_INTEGRATIONS = (access_integration)
SECRETS = ('api_key' = api_key)
AS
$$
import requests as rq
import pandas as pd
import snowflake.snowpark as snowpark
def getData (session: snowpark.Session):
apiurl = 'https://exmaple.com'
header = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Bearer bearer_token'
}
response = rq.post(apiurl, headers = header)
data = response.json()
df = pd.DataFrame(data)
session.write_pandas(df, table_name= 'RAW_SEGMENT', database='DEV_1_RAW', schema='SCHEMA!', auto_create_table=True, overwrite=True)
return data
$$;
CALL fetch_api_data();
Gibt es eine Möglichkeit, diese unstrukturierten Daten in einer Tabelle zu speichern? Mir reicht es, wenn die Daten alle als Objektdatentyp gespeichert werden.