[英]Error in coercing R data.frame to a nz.data.frame
R數據幀中的一列中包含“,”(逗號),因此,當我嘗試將其轉換為netezza數據幀時,它使我陷入錯誤:
nzQuery(sqlCommandUpload)中的錯誤:HY008 51操作被取消01000 1無法寫入nzlog /錯誤的文件01000 1無法寫入nzlog /錯誤的文件HY000 46錯誤:外部表:錯誤的輸入行數已達到maxerrors限制
如何在不對數據進行任何更改的情況下實現這一目標?
library(nzr)
library(forecast)
library (reshape2)
library(doBy)
nzDisconnect()
nzConnectDSN('DSNInfo', force=FALSE , verbose=TRUE)
#read file
test2<-read.csv("test_df.csv", stringsAsFactors = F)
# convert to nz dataframe, no error
#nzdf.test2<-as.nz.data.frame(test2)
nzdf.d<-as.nz.data.frame(d)
# copy
#test<-test2
testd<-d
#replace one of the values containing a ","
#test$Category[1]<-"a,b"
testd$Category[1]<-"Bed, Bath & Towels"
# converting to nz gives error
#nzdf.test<-as.nz.data.frame(test)
nzdf.testd<-as.nz.data.frame(testd)
#remove ","
test$Category <- gsub(",","",test$Category)
# converting to nz dataframe, gives no error
nzdf.test<-as.nz.data.frame(test)
您是否檢查數據中是否包含空值(NA)? 我曾經遇到過同樣的問題,但是當我查看Netezza-R文檔時,發現無法將Nulls從另一個系統寫入Netezza表中。 在這種情況下,提到了使用setOutputNull函數。
因此,一種解決方法是在R-dataframe中用字符串“ NULL”替換空值,請注意,這會使數字列變為varchar。 但是幸運的是,“ NULL”在您的netezza表中自動變為空。 唯一需要做的就是以后必須將列轉換回數字。
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.