➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
Do something in 5 with apps scripts number 6 - fusion crossfilter
1. do something useful with
Apps Script in 5 minutes
6. Fusion, Crossfilter and Sheets
Bruce McPherson
www.mcpher.com
2. Snippet objectives
● Use the lessons learned in ‘using a spreadsheet as a
database’
● Get data from a Fusion Table
● Use Crossfilter to summarize data and write it to a sheet
Libraries used
● database abstraction
● driver sheet
● crossfilter
● driver fusion
3. Add libraries to script
● create a spreadsheet
● get its id
● create a script
● Open resources
● Add references to libraries
MHfCjPQlweartW45xYs6hFai_d-phDA33
Mrckbr9_w7PCphJtOzhzA_Cz3TLx7pV4j
MyhWrchJeGiOowTfrMNidiSz3TLx7pV4j
M-tju_1qulZXW63vIuwyLOqi_d-phDA33
6. Workaround for fusion issue
● When the Fusion API is called from a library, the script
doesn’t know it needs authorization
● You need to mention Fusion in your script, even as a
comment to provoke an authorization dialog.
● Put this somewhere in your script - amazing but true,
// FusionTables.Table - this will provoke a fusion authorization
7. layout what you are going to do
function myFunction() {
// open fusion table
// open spreadsheet as database
// get all the data
// load it to crossFilter
// create a states dimension
// create a summary of how many airports in each state
// clear sheet
// write results
}
// FusionTables.Table - this will provoke a fusion authorization
8. Open Fusion data source
Open a Fusion table - this table has a list of all airports in each state
// open fusion table
var fusionHandler = new cDbAbstraction.DbAbstraction (cDriverFusion, {
dbid:'airports',
siloid:'1Ug6IA-L5NKq79I0ioilPXlojEklytFMMtKDNzvA'
});
if (!fusionHandler.isHappy()) throw 'unable to open fusion table';
9. Open Sheet for results
Open a Sheet … we’ll write the results here. Replace the key with the one for the spreadsheet you created
// open spreadsheet as database
var handler = new cDbAbstraction.DbAbstraction (cDriverSheet, {
siloid:'airporcountbystate',
dbid:'1a4oHUWS4sgR_VwjlU6ycyqc0DlUVpKNtEIVXKVwyfLs',
});
if (!handler.isHappy()) throw 'unable to open sheet';
10. Get all the data from Fusion
This will pick up all the airport data from the Fusion Table
// get all the data
var result = fusionHandler.query();
if (result.handleCode < 0) throw result.handleError;
11. Use crossfilter
Crossfilter is cool library for data wrangling. Great for summarizing and grouping.
// load it to crossFilter
var cf = cCrossFilter.crossfilter(result.data);
// create a states dimension
var states = cf.dimension ( function (d) { return d.state });
// write a summary of how many airports in each state
var stateSummary = states.filter(null).group().all();
12. Write results to a sheet
Clear any current contents, and write the results out
// clear sheet
var result = handler.remove();
if (handler.handleCode < 0) throw handler.handleError;
var result = handler.save(stateSummary);
if (handler.handleCode < 0) throw handler.handleError;
13. Homework
Read up about crossfilter and see what other
kind of summarization, filtering and analysis
you can do with this dataset
14. Follow up materials
Take a copy of this script
Take a copy of these slides
Join me on G+, or the G+ community
More on desktop liberation
More on database abstraction
More 5 minute things