问题描述
%%r
tempdf %>% summary() %>% print()
DBI::dbWriteTable(
conn=clinvar_conn,name=table_name,value=tempdf,overwrite=T
)
给予
CHROM POS ID REF
Length:775501 Length:775501 Length:775501 Length:775501
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
ALT QUAL FILTER INFO
Length:775501 Length:775501 Length:775501 Length:775501
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
Error: Job 'eacri-genomics.job_om9Un5yZVSHjLpt0d4ZzyF743zjy.US' Failed
✖ Error while reading data,error message: JSON processing encountered too many errors,giving up. Rows: 740479; errors: 1; max bad: 0; error percent: 0 [invalid]
✖ Error while reading data,error message: JSON parsing error in row starting at position 392688729: Could not convert value 'string_value: "X"' to integer. Field: CHROM; Value: X [invalid]
Run `rlang::last_error()` to see where the error occurred.
I made sure to cast all the data as character. Why is it trying to convert "X" to an integer?
解决方法
重新发布评论以求完整性。
如果只有775501行,位置392688729似乎很高。这使我怀疑您的某些数据类型不是假定的。鉴于错误消息中提到了JSON,也许您的某些字段是JSON对象,并且将它们强制转换为字符串并不符合您的假设。
两种可能的调查方式:
- 您的某些文本字段超过了最大字符数
- 您的输入中有一个未转义的引号,表示多个值被误读为单个值