2017-06-16 6 views
0

Rデータフレームの列の1つに「、」(カンマ)が含まれています。そのため、netezzaデータフレームに変換しようとすると、R data.frameをnz.data.frameに強制する際のエラー

Error in nzQuery(sqlCommandUpload) : HY008 51 Operation canceled 01000 1 Unable to write nzlog/bad files 01000 1 Unable to write nzlog/bad files HY000 46 ERROR: External Table : count of bad input rows reached maxerrors limit

データを変更せずにこれを達成するにはどうすればよいですか?このようなデータフレームで

、すべてが正常に動作します: data frame without ','

データフレームは次のようにあるときに、私はエラーを取得: Data frame with ','

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) 
+0

あなたのRコードを表示して、あなたが使っているライブラリを教えてください。 – ScottMcG

+0

@ScottMcGは質問を必要な詳細で編集しました –

答えて

1

あなたはヌル(NAS)を持っているかどうかをチェックしましたであなたのデータ?私は同じ問題に直面しましたが、Netezza-Rのドキュメントをチェックすると、別のシステムからNetezzaテーブルにNullを書き込むことができないことがわかりました。そのような場合にsetOutputNull関数を使うことについての言及があります。

回避策は、R-データフレーム内のNULLを文字列 "NULL"に置き換えることで、数値の列がvarcharになります。しかし、幸いにも "NULL"はあなたのnetezzaテーブルで自動的にヌルになります。余分な努力は、列を後で数値に戻す必要があることだけです。

希望します。

関連する問題