Skip to content

Commit abd4ab3

Browse files
Update bigquery.gs (#292)
Co-authored-by: Priyankarp24 <[email protected]>
1 parent 1e2bc97 commit abd4ab3

File tree

1 file changed

+49
-41
lines changed

1 file changed

+49
-41
lines changed

advanced/bigquery.gs

+49-41
Original file line numberDiff line numberDiff line change
@@ -20,59 +20,60 @@
2020
function runQuery() {
2121
// Replace this value with the project ID listed in the Google
2222
// Cloud Platform project.
23-
var projectId = 'XXXXXXXX';
23+
const projectId = 'XXXXXXXX';
2424

25-
var request = {
25+
const request = {
26+
// TODO (developer) - Replace query with yours
2627
query: 'SELECT TOP(word, 300) AS word, COUNT(*) AS word_count ' +
2728
'FROM `publicdata.samples.shakespeare` WHERE LENGTH(word) > 10;',
2829
useLegacySql: false
2930
};
30-
var queryResults = BigQuery.Jobs.query(request, projectId);
31-
var jobId = queryResults.jobReference.jobId;
31+
let queryResults = BigQuery.Jobs.query(request, projectId);
32+
const jobId = queryResults.jobReference.jobId;
3233

3334
// Check on status of the Query Job.
34-
var sleepTimeMs = 500;
35+
let sleepTimeMs = 500;
3536
while (!queryResults.jobComplete) {
3637
Utilities.sleep(sleepTimeMs);
3738
sleepTimeMs *= 2;
3839
queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId);
3940
}
4041

4142
// Get all the rows of results.
42-
var rows = queryResults.rows;
43+
let rows = queryResults.rows;
4344
while (queryResults.pageToken) {
4445
queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId, {
4546
pageToken: queryResults.pageToken
4647
});
4748
rows = rows.concat(queryResults.rows);
4849
}
4950

50-
if (rows) {
51-
var spreadsheet = SpreadsheetApp.create('BiqQuery Results');
52-
var sheet = spreadsheet.getActiveSheet();
51+
if (!rows) {
52+
Logger.log('No rows returned.');
53+
return;
54+
}
55+
const spreadsheet = SpreadsheetApp.create('BiqQuery Results');
56+
const sheet = spreadsheet.getActiveSheet();
5357

54-
// Append the headers.
55-
var headers = queryResults.schema.fields.map(function(field) {
56-
return field.name;
57-
});
58-
sheet.appendRow(headers);
58+
// Append the headers.
59+
const headers = queryResults.schema.fields.map(function(field) {
60+
return field.name;
61+
});
62+
sheet.appendRow(headers);
5963

60-
// Append the results.
61-
var data = new Array(rows.length);
62-
for (var i = 0; i < rows.length; i++) {
63-
var cols = rows[i].f;
64-
data[i] = new Array(cols.length);
65-
for (var j = 0; j < cols.length; j++) {
66-
data[i][j] = cols[j].v;
67-
}
64+
// Append the results.
65+
var data = new Array(rows.length);
66+
for (let i = 0; i < rows.length; i++) {
67+
const cols = rows[i].f;
68+
data[i] = new Array(cols.length);
69+
for (let j = 0; j < cols.length; j++) {
70+
data[i][j] = cols[j].v;
6871
}
69-
sheet.getRange(2, 1, rows.length, headers.length).setValues(data);
70-
71-
Logger.log('Results spreadsheet created: %s',
72-
spreadsheet.getUrl());
73-
} else {
74-
Logger.log('No rows returned.');
7572
}
73+
sheet.getRange(2, 1, rows.length, headers.length).setValues(data);
74+
75+
Logger.log('Results spreadsheet created: %s',
76+
spreadsheet.getUrl());
7677
}
7778
// [END apps_script_bigquery_run_query]
7879

@@ -83,17 +84,17 @@ function runQuery() {
8384
function loadCsv() {
8485
// Replace this value with the project ID listed in the Google
8586
// Cloud Platform project.
86-
var projectId = 'XXXXXXXX';
87+
const projectId = 'XXXXXXXX';
8788
// Create a dataset in the BigQuery UI (https://bigquery.cloud.google.com)
8889
// and enter its ID below.
89-
var datasetId = 'YYYYYYYY';
90+
const datasetId = 'YYYYYYYY';
9091
// Sample CSV file of Google Trends data conforming to the schema below.
9192
// https://docs.google.com/file/d/0BwzA1Orbvy5WMXFLaTR1Z1p2UDg/edit
92-
var csvFileId = '0BwzA1Orbvy5WMXFLaTR1Z1p2UDg';
93+
const csvFileId = '0BwzA1Orbvy5WMXFLaTR1Z1p2UDg';
9394

9495
// Create the table.
95-
var tableId = 'pets_' + new Date().getTime();
96-
var table = {
96+
const tableId = 'pets_' + new Date().getTime();
97+
let table = {
9798
tableReference: {
9899
projectId: projectId,
99100
datasetId: datasetId,
@@ -108,15 +109,18 @@ function loadCsv() {
108109
]
109110
}
110111
};
111-
table = BigQuery.Tables.insert(table, projectId, datasetId);
112-
Logger.log('Table created: %s', table.id);
113-
112+
try {
113+
table = BigQuery.Tables.insert(table, projectId, datasetId);
114+
Logger.log('Table created: %s', table.id);
115+
} catch (err) {
116+
Logger.log('unable to create table');
117+
}
114118
// Load CSV data from Drive and convert to the correct format for upload.
115-
var file = DriveApp.getFileById(csvFileId);
116-
var data = file.getBlob().setContentType('application/octet-stream');
119+
const file = DriveApp.getFileById(csvFileId);
120+
const data = file.getBlob().setContentType('application/octet-stream');
117121

118122
// Create the data upload job.
119-
var job = {
123+
const job = {
120124
configuration: {
121125
load: {
122126
destinationTable: {
@@ -128,8 +132,12 @@ function loadCsv() {
128132
}
129133
}
130134
};
131-
job = BigQuery.Jobs.insert(job, projectId, data);
132-
Logger.log('Load job started. Check on the status of it here: ' +
135+
try {
136+
BigQuery.Jobs.insert(job, projectId, data);
137+
Logger.log('Load job started. Check on the status of it here: ' +
133138
'https://bigquery.cloud.google.com/jobs/%s', projectId);
139+
} catch (err) {
140+
Logger.log('unable to insert job');
141+
}
134142
}
135143
// [END apps_script_bigquery_load_csv]

0 commit comments

Comments
 (0)