我在 bash 中不断收到以下错误(使用 Windows):
$ URL = "https://nyc-tlc.s3.amazonaws.com/trip+data/yellow_tripdata_2022-01.parquet"
bash: URL: command not found
我尝试在 bash 中运行的完整命令是:
URL = "https://nyc-tlc.s3.amazonaws.com/trip+data/yellow_tripdata_2022-01.parquet"
python ingest_data.py \
--user=root \
--password=root \
--host=localhost \
--port=5432 \
--db=ny_taxi \
--table_name=yellow_taxi_trips \
--url=${URL}
运行完整命令会运行 ingest_data.py 文件,但不会发生下载(我认为是因为此URL: command not found
错误。
如果我运行 ingest_data.py 那么什么也不会发生 - 类似于运行上面的完整命令。
ingest_data.py 文件中使用 URL 的“重要”部分是os.system(f"wget {url} -0 {flatfile_parquet}")
:
def main(params):
user = params.user
password = params.password
host = params.host
port = params.port
db = params.db
table_name = params.table_name
url = params.url
flatfile_parquet = 'output.parquet'
# download the parquet file
os.system(f"wget {url} -0 {flatfile_parquet}")
# connect to server
engine = create_engine(f'postgresql://{user}:{password}@{host}:{port}/{db}')
我一直在寻找说使用curl 的线程,但我不想在bash 中下载文件,我想将url 存储在变量中,然后在文件中使用它ingest_data.py
。
任何建议表示赞赏,我对 bash 有点菜鸟
答案1
您的第一行有语法错误。 “=”周围不能留有空格,否则 BASH 将尝试将第一个单词作为命令运行。考虑:
$ a = "xx"
bash: a: command not found
$ echo = "xx"
= xx
$ a="xx"
$ echo "$a"
xx
你应该使用:
$ URL="https://nyc-tlc.s3.amazonaws.com/trip+data/yellow_tripdata_2022-01.parquet"