我正在尝试将从 json 响应创建的 df 摄取到现有表中(该表当前为空,因为我似乎无法让它工作)
df 类似于下表:
| 指数 | clicks_affiliate |
|---|---|
| 0 | 3214 |
| 1 | 2221 |
但我看到以下错误:
Snowflake.connector.errors.ProgrammingError:000904(42000):SQL编译错误:位置94处的错误行1无效标识符“clicks_affiliated”
雪花中的列名称与我的数据框中的列匹配。
这是我的代码:
import pandas as pd
from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine
import snowflake.connector
from snowflake.connector.pandas_tools import write_pandas, pd_writer
from pandas import json_normalize
import requests
df_norm = json_normalize(json_response, 'reports')
#I've tried also adding the below line (and removing it) but I see the same error
df = df_norm.reset_index(drop=True)
def create_db_engine(db_name, schema_name):
engine = URL(
account="ab12345.us-west-2",
user="my_user",
password="my_pw",
database="DB",
schema="PUBLIC",
warehouse="WH1",
role="DEV"
)
return …Run Code Online (Sandbox Code Playgroud) 尝试从 s3 获取文件到 Postgres,我看到以下错误:
ERROR: permission denied for function table_import_from_s3
Run Code Online (Sandbox Code Playgroud)
这就是我正在尝试的:
SELECT aws_s3.table_import_from_s3(
'btr.Ats_20210304',
'ID,NAME,WEBSITE,TYPE,CATEGORY,SUB_CATEGORY,PARENT_ACCOUNT,PARENT_ACCOUNT_ID,REGION,SEGMENT,HOLDING_COMPANY,CUSTOM_FIELDS,TEAM,EMAIL,STREET1,STREET2,CITY,STATE,ZIP,PHONE,COUNTRY,MOBILE,CREATED_BY,UPDATED_BY,UPDATE_AT',
'(FORMAT csv, HEADER true, DELIMITER ",")',
'vdw-dev',
'date/hourly/data_0_0_0.csv.gz',
'us-east-1');
Run Code Online (Sandbox Code Playgroud) 我正在尝试恢复一些记录,但我不记得它们被删除的确切时间或日期:
我记得这些被删除的记录在link和name列中都有“nan”值,并且asof_date值在七月和十月之间。
我相信它们已在 1 天前被删除,所以我尝试了此操作(从一天 1440 分钟开始),但没有填充任何内容:
select * from my_table at(offset => -60*1440)
where link = 'nan'
and name = 'nan'
and to_date(asof_date) >= '2021-07-01'
and to_date(asof_date) <= '2021-10-13'
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 pandas 读取一些文件来s3Hook获取密钥。我能够获取密钥,但是我不确定如何让 pandas 找到文件,当我运行以下命令时,我得到:
没有这样的文件或目录:
这是我的代码:
def transform_pages(company, **context):
ds = context.get("execution_date").strftime('%Y-%m-%d')
s3 = S3Hook('aws_default')
s3_conn = s3.get_conn()
keys = s3.list_keys(bucket_name=Variable.get('s3_bucket'),
prefix=f'S/{company}/pages/date={ds}/',
delimiter="/")
prefix = f'S/{company}/pages/date={ds}/'
logging.info(f'keys from function: {keys}')
""" transforming pages and loading data back to S3 """
for file in keys:
df = pd.read_csv(file, sep='\t', skiprows=1, header=None)
Run Code Online (Sandbox Code Playgroud) 我在这个db_2022.dump二进制文件中有一个数据库转储,我试图将其导入到 dbeaver,但我还没有找到导入数据库的方法,以便我可以看到它。
我在 dbeaver 论坛中找到了以下内容,但是当我尝试按照说明创建新连接时,我没有看到任何可以选择来打开此文档的选项。
https://dbeaver.io/forum/viewtopic.php?f=2&t=895
编辑:数据库和版本是 PostgreSQL 12 。我不想将其转储到现有数据库,而是想用此转储创建一个新数据库。转储命令如下所示:pg_dump -h blah.amazonaws.com -Fc -v --dbname="blah2" -f "/tmp/dump/20220203.dump"。它将是相同版本的 PostgreSQL 12
我有以下代码,我有帐户、用户名、密码等,但我仍然看到以下错误:
raise error_class( sqlalchemy.exc.ProgrammingError: (snowflake.connector.errors.ProgrammingError) 251001: 必须指定帐户
我也尝试过更改函数engine中的变量,created_db_engine如下所示,但我看到了相同的错误:
engine = snowflake.connector.connect(
user='USER',
password='PASSWORD',
account='ACCOUNT',
warehouse='WAREHOUSE',
database='DATABASE',
schema='SCHEMA'
)
Run Code Online (Sandbox Code Playgroud)
这是我的代码
import pandas as pd
from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine
import snowflake.connector
from snowflake.connector.pandas_tools import write_pandas, pd_writer
from pandas import json_normalize
import requests
df = 'my_dataframe'
def create_db_engine(db_name, schema_name):
engine = URL(
account="ab12345.us-west-2.snowflakecomputing.com",
user="my_user",
password="my_pw",
database="DB",
schema="PUBLIC",
warehouse="WH1",
role="DEV"
)
return engine
def create_table(out_df, table_name, idx=False):
url = create_db_engine(db_name="db", schema_name="skm")
engine = create_engine(url)
connection = …Run Code Online (Sandbox Code Playgroud) snowflake-cloud-data-platform ×3
amazon-s3 ×2
pandas ×2
postgresql ×2
airflow ×1
amazon-rds ×1
dbeaver ×1
python ×1
sql ×1
sqlalchemy ×1