【问题标题】:snowflake.connector.errors.ProgrammingError: 100016 (22000): Field delimiter ',' found while expecting record delimiter '\n' File line 178, Row 178snowflake.connector.errors.ProgrammingError: 100016 (22000): Field delimiter ',' 在期待记录分隔符 '\n' 时发现 文件第 178 行,第 178 行
【发布时间】:2020-07-17 17:20:10
【问题描述】:

我正在尝试将 csv 文件名 F58155 加载到雪花中具有相同名称的表中。我有 csv 格式的文件。它给了我标题中的错误。我还附上了我面临问题的 csv 文件第 178 行的屏幕截图(最后最右边的列)。有人可以帮忙吗?

import snowflake.connector
tableName='F58155'

ctx = snowflake.connector.connect(
user='*',
password='*',
account='*')

cs = ctx.cursor()

ctx.cursor().execute("USE DATABASE STORE_PROFILE_LANDING")
ctx.cursor().execute("USE SCHEMA PUBLIC")

ctx.cursor().execute("PUT file:///tmp/data/{tableName}/* @%{tableName}".format(tableName=tableName))
ctx.cursor().execute("truncate table {tableName}".format(tableName=tableName))
ctx.cursor().execute("COPY INTO {tableName} ".format(tableName=tableName))

ctx.close()

【问题讨论】:

  • 这清楚地表明您的文件存在问题。你能分享雪花的文件格式定义吗?你可以在文件上运行选择吗?如果文件不大,请尝试在 sublime 或记事本和眼球记录等编辑器中打开它,以查看任何异常情况。告诉我。
  • @hopeIsTheonlyWeapon 该文件尚未加载到雪花中,因此无法对文件运行选择。
  • 你能不能试着把它放到你的舞台上。把 file:///data/data.csv @%mytable;然后在加载之前阅读它。这将帮助我们更快地调试问题
  • 您是否尝试过使用雪花内置的数据加载功能?

标签: python sql python-3.x snowflake-cloud-data-platform


【解决方案1】:

听起来您可能有一个包含逗号的单元格值。比如:

1,2,3,"foo,bar",5,6

COPY INTO 语句有一个 FILE_FORMAT 参数,您可能想尝试一下以适应特定 CSV 文件的细微差别。例如,指定...

FIELD_OPTIONALLY_ENCLOSED_BY = '"'

... 对上述单元格值中的逗号示例有所帮助,但也可能存在转义问题、换行问题等可能产生相同错误的问题。

文档在这里:https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html

另一个建议是使用文本编辑器(如 VS Code)检查 CSV 文件,这将帮助您发现抛出错误的行的奇怪/独特之处。问题也可能出在上一行。

祝你好运!

【讨论】:

  • 00112,GORDON'S INFO ,HD US STORES ,"HD US STORES (NO AK,HI,PR,VI)", , , , ,0.0,0.0,E, ,0.0,N,116042.0, 129365.0,A,ALISOND ,X58155 ,ALISONDB ,116042.0,132655.0,ALISOND ,X58155 ,ALISONDB ,116042.0,132655.0 这是我遇到问题的确切记录,我尝试了你的方法,但没有改变,仍然出现同样的错误,@Chris Sears
  • 你能分享你用来尝试这个答案建议的参数的代码吗?它应该是一个很好的解决方案,或者错误可能改变了?
猜你喜欢
  • 2022-12-30
  • 2015-12-26
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 2017-04-19
  • 1970-01-01
相关资源
最近更新 更多