15
15
# ' @param maxBadRecords The maximum number of bad records that BigQuery can ignore when running the job
16
16
# ' @param allowJaggedRows Whether to allow rows with variable length columns
17
17
# ' @param allowQuotedNewlines Whether to allow datasets with quoted new lines
18
+ # ' @param fieldDelimiter The separator for fields in a CSV file. Default is comma - \code{,}
18
19
# '
19
20
# ' @return TRUE if successful, FALSE if not.
20
21
# '
@@ -78,7 +79,8 @@ bqr_upload_data <- function(projectId = bqr_get_global_project(),
78
79
nullMarker = NULL ,
79
80
maxBadRecords = NULL ,
80
81
allowJaggedRows = FALSE ,
81
- allowQuotedNewlines = FALSE ){
82
+ allowQuotedNewlines = FALSE ,
83
+ fieldDelimiter = " ," ){
82
84
83
85
84
86
assert_that(is.string(projectId ),
@@ -88,7 +90,8 @@ bqr_upload_data <- function(projectId = bqr_get_global_project(),
88
90
is.flag(wait ),
89
91
is.flag(allowJaggedRows ),
90
92
is.flag(allowQuotedNewlines ),
91
- is.flag(autodetect ))
93
+ is.flag(autodetect ),
94
+ is.string(fieldDelimiter ))
92
95
sourceFormat <- match.arg(sourceFormat )
93
96
create <- match.arg(create )
94
97
@@ -123,7 +126,8 @@ bqr_upload_data <- function(projectId = bqr_get_global_project(),
123
126
nullMarker = nullMarker ,
124
127
maxBadRecords = maxBadRecords ,
125
128
allowJaggedRows = allowJaggedRows ,
126
- allowQuotedNewlines = allowQuotedNewlines )
129
+ allowQuotedNewlines = allowQuotedNewlines ,
130
+ fieldDelimiter = fieldDelimiter )
127
131
128
132
}
129
133
@@ -140,7 +144,8 @@ bqr_do_upload <- function(upload_data,
140
144
nullMarker ,
141
145
maxBadRecords ,
142
146
allowJaggedRows ,
143
- allowQuotedNewlines ){
147
+ allowQuotedNewlines ,
148
+ fieldDelimiter ){
144
149
check_bq_auth()
145
150
UseMethod(" bqr_do_upload" , upload_data )
146
151
}
@@ -158,7 +163,8 @@ bqr_do_upload.data.frame <- function(upload_data,
158
163
nullMarker ,
159
164
maxBadRecords ,
160
165
allowJaggedRows ,
161
- allowQuotedNewlines ){
166
+ allowQuotedNewlines ,
167
+ fieldDelimiter ){
162
168
163
169
if (! is.null(user_schema )){
164
170
schema <- user_schema
@@ -169,6 +175,7 @@ bqr_do_upload.data.frame <- function(upload_data,
169
175
config <- list (
170
176
configuration = list (
171
177
load = list (
178
+ fieldDelimiter = fieldDelimiter ,
172
179
nullMarker = nullMarker ,
173
180
maxBadRecords = maxBadRecords ,
174
181
sourceFormat = " CSV" ,
@@ -272,7 +279,8 @@ bqr_do_upload.character <- function(upload_data,
272
279
nullMarker ,
273
280
maxBadRecords ,
274
281
allowJaggedRows ,
275
- allowQuotedNewlines ){
282
+ allowQuotedNewlines ,
283
+ fieldDelimiter ){
276
284
277
285
if (length(upload_data ) > 1 ){
278
286
source_uri <- upload_data
@@ -283,14 +291,12 @@ bqr_do_upload.character <- function(upload_data,
283
291
config <- list (
284
292
configuration = list (
285
293
load = list (
294
+ fieldDelimiter = fieldDelimiter ,
286
295
nullMarker = nullMarker ,
287
296
maxBadRecords = maxBadRecords ,
288
297
sourceFormat = sourceFormat ,
289
298
createDisposition = jsonlite :: unbox(create ),
290
299
sourceUris = source_uri ,
291
- # schema = list(
292
- # fields = user_schema
293
- # ),
294
300
destinationTable = list (
295
301
projectId = projectId ,
296
302
datasetId = datasetId ,
@@ -305,12 +311,31 @@ bqr_do_upload.character <- function(upload_data,
305
311
306
312
# # only provide schema if autodetect is FALSE
307
313
if (! autodetect ){
308
- config <- config $ configuration $ schema <- list (
309
- fields = user_schema
314
+ config <- list (
315
+ configuration = list (
316
+ load = list (
317
+ fieldDelimiter = fieldDelimiter ,
318
+ nullMarker = nullMarker ,
319
+ maxBadRecords = maxBadRecords ,
320
+ sourceFormat = sourceFormat ,
321
+ createDisposition = jsonlite :: unbox(create ),
322
+ sourceUris = source_uri ,
323
+ schema = list (
324
+ fields = user_schema
325
+ ),
326
+ destinationTable = list (
327
+ projectId = projectId ,
328
+ datasetId = datasetId ,
329
+ tableId = tableId
330
+ ),
331
+ autodetect = autodetect ,
332
+ allowJaggedRows = allowJaggedRows ,
333
+ allowQuotedNewlines = allowQuotedNewlines
334
+ )
335
+ )
310
336
)
311
337
}
312
338
313
-
314
339
l <-
315
340
googleAuthR :: gar_api_generator(" https://www.googleapis.com/bigquery/v2" ,
316
341
" POST" ,
0 commit comments