├── .DS_Store
├── .gitignore
├── README.md
├── SparkStarSchema.png
├── create_tables.py
├── data
├── .DS_Store
├── log_data
│ └── 2018
│ │ └── 11
│ │ ├── 2018-11-01-events.json
│ │ ├── 2018-11-02-events.json
│ │ ├── 2018-11-03-events.json
│ │ ├── 2018-11-04-events.json
│ │ ├── 2018-11-05-events.json
│ │ ├── 2018-11-06-events.json
│ │ ├── 2018-11-07-events.json
│ │ ├── 2018-11-08-events.json
│ │ ├── 2018-11-09-events.json
│ │ ├── 2018-11-10-events.json
│ │ ├── 2018-11-11-events.json
│ │ ├── 2018-11-12-events.json
│ │ ├── 2018-11-13-events.json
│ │ ├── 2018-11-14-events.json
│ │ ├── 2018-11-15-events.json
│ │ ├── 2018-11-16-events.json
│ │ ├── 2018-11-17-events.json
│ │ ├── 2018-11-18-events.json
│ │ ├── 2018-11-19-events.json
│ │ ├── 2018-11-20-events.json
│ │ ├── 2018-11-21-events.json
│ │ ├── 2018-11-22-events.json
│ │ ├── 2018-11-23-events.json
│ │ ├── 2018-11-24-events.json
│ │ ├── 2018-11-25-events.json
│ │ ├── 2018-11-26-events.json
│ │ ├── 2018-11-27-events.json
│ │ ├── 2018-11-28-events.json
│ │ ├── 2018-11-29-events.json
│ │ └── 2018-11-30-events.json
└── song_data
│ └── A
│ ├── A
│ ├── A
│ │ ├── TRAAAAW128F429D538.json
│ │ ├── TRAAABD128F429CF47.json
│ │ ├── TRAAADZ128F9348C2E.json
│ │ ├── TRAAAEF128F4273421.json
│ │ ├── TRAAAFD128F92F423A.json
│ │ ├── TRAAAMO128F1481E7F.json
│ │ ├── TRAAAMQ128F1460CD3.json
│ │ ├── TRAAAPK128E0786D96.json
│ │ ├── TRAAARJ128F9320760.json
│ │ ├── TRAAAVG12903CFA543.json
│ │ └── TRAAAVO128F93133D4.json
│ ├── B
│ │ ├── TRAABCL128F4286650.json
│ │ ├── TRAABDL12903CAABBA.json
│ │ ├── TRAABJL12903CDCF1A.json
│ │ ├── TRAABJV128F1460C49.json
│ │ ├── TRAABLR128F423B7E3.json
│ │ ├── TRAABNV128F425CEE1.json
│ │ ├── TRAABRB128F9306DD5.json
│ │ ├── TRAABVM128F92CA9DC.json
│ │ ├── TRAABXG128F9318EBD.json
│ │ ├── TRAABYN12903CFD305.json
│ │ └── TRAABYW128F4244559.json
│ └── C
│ │ ├── TRAACCG128F92E8A55.json
│ │ ├── TRAACER128F4290F96.json
│ │ ├── TRAACFV128F935E50B.json
│ │ ├── TRAACHN128F1489601.json
│ │ ├── TRAACIW12903CC0F6D.json
│ │ ├── TRAACLV128F427E123.json
│ │ ├── TRAACNS128F14A2DF5.json
│ │ ├── TRAACOW128F933E35F.json
│ │ ├── TRAACPE128F421C1B9.json
│ │ ├── TRAACQT128F9331780.json
│ │ ├── TRAACSL128F93462F4.json
│ │ ├── TRAACTB12903CAAF15.json
│ │ ├── TRAACVS128E078BE39.json
│ │ └── TRAACZK128F4243829.json
│ └── B
│ ├── A
│ ├── TRABACN128F425B784.json
│ ├── TRABAFJ128F42AF24E.json
│ ├── TRABAFP128F931E9A1.json
│ ├── TRABAIO128F42938F9.json
│ ├── TRABATO128F42627E9.json
│ ├── TRABAVQ12903CBF7E0.json
│ ├── TRABAWW128F4250A31.json
│ ├── TRABAXL128F424FC50.json
│ ├── TRABAXR128F426515F.json
│ ├── TRABAXV128F92F6AE3.json
│ └── TRABAZH128F930419A.json
│ ├── B
│ ├── TRABBAM128F429D223.json
│ ├── TRABBBV128F42967D7.json
│ ├── TRABBJE12903CDB442.json
│ ├── TRABBKX128F4285205.json
│ ├── TRABBLU128F93349CF.json
│ ├── TRABBNP128F932546F.json
│ ├── TRABBOP128F931B50D.json
│ ├── TRABBOR128F4286200.json
│ ├── TRABBTA128F933D304.json
│ ├── TRABBVJ128F92F7EAA.json
│ ├── TRABBXU128F92FEF48.json
│ └── TRABBZN12903CD9297.json
│ └── C
│ ├── TRABCAJ12903CDFCC2.json
│ ├── TRABCEC128F426456E.json
│ ├── TRABCEI128F424C983.json
│ ├── TRABCFL128F149BB0D.json
│ ├── TRABCIX128F4265903.json
│ ├── TRABCKL128F423A778.json
│ ├── TRABCPZ128F4275C32.json
│ ├── TRABCRU128F423F449.json
│ ├── TRABCTK128F934B224.json
│ ├── TRABCUQ128E0783E2B.json
│ ├── TRABCXB128F4286BD3.json
│ └── TRABCYE128F934CE1D.json
├── etl.ipynb
├── etl.py
├── sql_queries.py
└── test.ipynb
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wathon/Data-Modeling-with-Postgres/aedb166845200024174b0a3368f0e549176411e1/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
131 | .DS_Store
132 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Sparkify ETL with Postgres and Python
2 |
3 | In this project, we'll learned on data modeling with Postgres and build an ETL pipeline using Python.
4 |
5 | We will follow the following steps:
6 | - Data modeling with Postgres
7 | - Creating star schema database
8 | - ETL pipeline using Python
9 |
10 | ## Project Description
11 |
12 | This project is to create a SQL analytics database for a music streaming startup called Sparkify. Sparkify's analytics team want to understand what songs users are listening on the company's music app. They need an easy way to query to their data. These data are stored in raw JSON logs on user activity on the app, as well as a directory with JSON metadata on the songs in their app on.
13 |
14 |
15 | ### Project Dataset
16 |
17 | - **Song Dataset**: files are partitioned by the first three letters of each song's track ID e.g. */data/song_data.*.json. Sample:
18 |
19 | ```
20 | {"artist_id": "ARD7TVE1187B99BFB1", "artist_latitude": null, "artist_location": "California - LA", "artist_longitude": null, "artist_name": "Casual", "duration": 218.93179, "num_songs": 1, "song_id": "SOMZWCG12A8C13C480", "title": "I Didn't Mean To", "year": 0}
21 | ```
22 |
23 | - **Log Dataset**: files in the dataset you'll be working with are partitioned by year and month e.g. */data/log_data.*json. Sample:
24 |
25 | ```
26 | {"artist": "Stephen Lynch", "auth": "Logged In", "firstName": "Jayden", "gender": "M", "itemInSession": 0, "lastName": "Bell", "length": 182.85669, "level": "free", "location": "Dallas-Fort Worth-Arlington", "method": "TX PUT", "page": "NextSong", "registration": 1.540992.., "sessionId": "829", "song":"Jim Henson's Dead", "status": 200, "ts": 1543537327796, "userAgent": "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT...", "userId": 91}
27 | ```
28 |
29 | ## Data Modeling
30 |
31 | We will use the Star Schema:
32 | one fact table consist of the measures associated with each event *songplays*,
33 | and referencing four dimensional tables *songs*, *artists*, *users* and *time*, each with a primary key that is being referenced from the fact table.
34 |
35 | On why to use a relational database for this case:
36 |
37 | - The data types are structured (we know before-hand the structure of the jsons we need to analyze, and where and how to extract and transform each field)
38 | - The amount of data we need to analyze is not big enough to require big data related solutions.
39 | - This structure will enable the analysts to aggregate the data efficiently
40 | - Ability to use SQL that is more than enough for this kind of analysis
41 | - We need to use JOINS for this scenario
42 |
43 | 
44 |
45 | ## Project template
46 |
47 | The data files, the project includes seven files:
48 | 1. ***create_tables.py*:** drops and creates your tables. You run this file to reset your tables before each time you run your ETL scripts.
49 | 2. ***etl.ipynb*:** reads and processes a single file from *song_data* and *log_data* and loads the data into your tables. This notebook contains detailed instructions on the ETL process for each of the tables.
50 | 3. ***etl.py*:** reads and processes files from *song_data* and *log_data* and loads them into your tables. You can fill this out based on your work in the ETL notebook.
51 | 4. ***README.md*:** provides discussion on this project.
52 | 5. ***SparkStarSchema.png*:** *ERD* for star schema of this project
53 | 6. ***sql_queries.py*:** contains all your sql queries, and is imported into the last three files above.
54 | 7. ***test.ipynb*:** displays the first few rows of each table to let us check on the database.
55 |
56 | ## How to Run
57 |
58 | 1. Run ***create_tables.py*** to create the database and tables.
59 | 2. Run ***etl.py*** to process for loading, extracting and inserting the data.
60 | 3. Run ***test.ipynb*** to confirm the creation of database and columns.
--------------------------------------------------------------------------------
/SparkStarSchema.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wathon/Data-Modeling-with-Postgres/aedb166845200024174b0a3368f0e549176411e1/SparkStarSchema.png
--------------------------------------------------------------------------------
/create_tables.py:
--------------------------------------------------------------------------------
1 | import psycopg2
2 | from sql_queries import create_table_queries, drop_table_queries
3 |
4 |
5 | def create_database():
6 | """
7 | - Creates and connects to the sparkifydb
8 | - Returns the connection and cursor to sparkifydb
9 | """
10 |
11 | # connect to default database
12 | conn = psycopg2.connect("host=127.0.0.1 dbname=studentdb user=student password=student")
13 | conn.set_session(autocommit=True)
14 | cur = conn.cursor()
15 |
16 | # create sparkify database with UTF8 encoding
17 | cur.execute("DROP DATABASE IF EXISTS sparkifydb")
18 | cur.execute("CREATE DATABASE sparkifydb WITH ENCODING 'utf8' TEMPLATE template0")
19 |
20 | # close connection to default database
21 | conn.close()
22 |
23 | # connect to sparkify database
24 | conn = psycopg2.connect("host=127.0.0.1 dbname=sparkifydb user=student password=student")
25 | cur = conn.cursor()
26 |
27 | return cur, conn
28 |
29 |
30 | def drop_tables(cur, conn):
31 | """
32 | Drops each table using the queries in `drop_table_queries` list.
33 | """
34 | for query in drop_table_queries:
35 | cur.execute(query)
36 | conn.commit()
37 |
38 |
39 | def create_tables(cur, conn):
40 | """
41 | Creates each table using the queries in `create_table_queries` list.
42 | """
43 | for query in create_table_queries:
44 | cur.execute(query)
45 | conn.commit()
46 |
47 |
48 | def main():
49 | """
50 | - Drops (if exists) and Creates the sparkify database.
51 |
52 | - Establishes connection with the sparkify database and gets
53 | cursor to it.
54 |
55 | - Drops all the tables.
56 |
57 | - Creates all tables needed.
58 |
59 | - Finally, closes the connection.
60 | """
61 | cur, conn = create_database()
62 |
63 | drop_tables(cur, conn)
64 | create_tables(cur, conn)
65 |
66 | conn.close()
67 |
68 |
69 | if __name__ == "__main__":
70 | main()
--------------------------------------------------------------------------------
/data/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Wathon/Data-Modeling-with-Postgres/aedb166845200024174b0a3368f0e549176411e1/data/.DS_Store
--------------------------------------------------------------------------------
/data/log_data/2018/11/2018-11-01-events.json:
--------------------------------------------------------------------------------
1 | {"artist":null,"auth":"Logged In","firstName":"Walter","gender":"M","itemInSession":0,"lastName":"Frye","length":null,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540919166796.0,"sessionId":38,"song":null,"status":200,"ts":1541105830796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"39"}
2 | {"artist":null,"auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":0,"lastName":"Summers","length":null,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"GET","page":"Home","registration":1540344794796.0,"sessionId":139,"song":null,"status":200,"ts":1541106106796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
3 | {"artist":"Des'ree","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":1,"lastName":"Summers","length":246.30812,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":139,"song":"You Gotta Be","status":200,"ts":1541106106796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
4 | {"artist":null,"auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":2,"lastName":"Summers","length":null,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"GET","page":"Upgrade","registration":1540344794796.0,"sessionId":139,"song":null,"status":200,"ts":1541106132796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
5 | {"artist":"Mr Oizo","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":3,"lastName":"Summers","length":144.03873,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":139,"song":"Flat 55","status":200,"ts":1541106352796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
6 | {"artist":"Tamba Trio","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":4,"lastName":"Summers","length":177.18812,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":139,"song":"Quem Quiser Encontrar O Amor","status":200,"ts":1541106496796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
7 | {"artist":"The Mars Volta","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":5,"lastName":"Summers","length":380.42077,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":139,"song":"Eriatarka","status":200,"ts":1541106673796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
8 | {"artist":"Infected Mushroom","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":6,"lastName":"Summers","length":440.2673,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":139,"song":"Becoming Insane","status":200,"ts":1541107053796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
9 | {"artist":"Blue October \/ Imogen Heap","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":7,"lastName":"Summers","length":241.3971,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":139,"song":"Congratulations","status":200,"ts":1541107493796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
10 | {"artist":"Girl Talk","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":8,"lastName":"Summers","length":160.15628,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":139,"song":"Once again","status":200,"ts":1541107734796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
11 | {"artist":"Black Eyed Peas","auth":"Logged In","firstName":"Sylvie","gender":"F","itemInSession":0,"lastName":"Cruz","length":214.93506,"level":"free","location":"Washington-Arlington-Alexandria, DC-VA-MD-WV","method":"PUT","page":"NextSong","registration":1540266185796.0,"sessionId":9,"song":"Pump It","status":200,"ts":1541108520796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"10"}
12 | {"artist":null,"auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":0,"lastName":"Smith","length":null,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"GET","page":"Home","registration":1541016707796.0,"sessionId":169,"song":null,"status":200,"ts":1541109015796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
13 | {"artist":"Fall Out Boy","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":1,"lastName":"Smith","length":200.72444,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":169,"song":"Nobody Puts Baby In The Corner","status":200,"ts":1541109125796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
14 | {"artist":"M.I.A.","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":2,"lastName":"Smith","length":233.7171,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":169,"song":"Mango Pickle Down River (With The Wilcannia Mob)","status":200,"ts":1541109325796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
15 | {"artist":"Survivor","auth":"Logged In","firstName":"Jayden","gender":"M","itemInSession":0,"lastName":"Fox","length":245.36771,"level":"free","location":"New Orleans-Metairie, LA","method":"PUT","page":"NextSong","registration":1541033612796.0,"sessionId":100,"song":"Eye Of The Tiger","status":200,"ts":1541110994796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.3; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"101"}
--------------------------------------------------------------------------------
/data/log_data/2018/11/2018-11-10-events.json:
--------------------------------------------------------------------------------
1 | {"artist":"Hoobastank","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":0,"lastName":"Finley","length":241.3971,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":132,"song":"Say The Same","status":200,"ts":1541808927796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
2 | {"artist":"Mark Knopfler","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":1,"lastName":"Finley","length":249.3122,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":132,"song":"Why Aye Man","status":200,"ts":1541809168796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
3 | {"artist":"Mogwai","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":2,"lastName":"Finley","length":341.28934,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":132,"song":"We're No Here","status":200,"ts":1541809417796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
4 | {"artist":"The Casualties","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":3,"lastName":"Finley","length":181.49832,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":132,"song":"Punx Unite","status":200,"ts":1541809758796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
5 | {"artist":null,"auth":"Logged In","firstName":"Cecilia","gender":"F","itemInSession":0,"lastName":"Owens","length":null,"level":"free","location":"Atlanta-Sandy Springs-Roswell, GA","method":"GET","page":"Home","registration":1541032432796.0,"sessionId":424,"song":null,"status":200,"ts":1541813635796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko\/20100101 Firefox\/32.0","userId":"6"}
6 | {"artist":"The Living End","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":0,"lastName":"Smith","length":188.62975,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":433,"song":"Roll On (Album Version)","status":200,"ts":1541822502796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
7 | {"artist":"Aloe Blacc","auth":"Logged In","firstName":"Rylan","gender":"M","itemInSession":0,"lastName":"George","length":244.1922,"level":"free","location":"Birmingham-Hoover, AL","method":"PUT","page":"NextSong","registration":1541020249796.0,"sessionId":402,"song":"I Need A Dollar","status":200,"ts":1541829709796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"16"}
8 | {"artist":"Faith No More","auth":"Logged In","firstName":"Rylan","gender":"M","itemInSession":1,"lastName":"George","length":326.50404,"level":"free","location":"Birmingham-Hoover, AL","method":"PUT","page":"NextSong","registration":1541020249796.0,"sessionId":402,"song":"Helpless","status":200,"ts":1541829953796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"16"}
9 | {"artist":"Chris Cornell","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":0,"lastName":"Kirby","length":353.69751,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Sunshower (Great Expectations Soundtrack)","status":200,"ts":1541835258796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
10 | {"artist":"Weezer","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":1,"lastName":"Kirby","length":203.93751,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"My Name Is Jonas","status":200,"ts":1541835611796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
11 | {"artist":"Stream of Passion feat. Ayreon","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":2,"lastName":"Kirby","length":257.56689,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Valley Of The Queens","status":200,"ts":1541835814796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
12 | {"artist":"Lupe Fiasco","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":3,"lastName":"Kirby","length":273.94567,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Shining Down [feat. Matthew Santos] (Amended Album Version)","status":200,"ts":1541836071796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
13 | {"artist":"Tom Petty","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":4,"lastName":"Kirby","length":263.23546,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Runnin' Down A Dream","status":200,"ts":1541836344796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
14 | {"artist":"The Killers","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":5,"lastName":"Kirby","length":220.89098,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"When You Were Young","status":200,"ts":1541836607796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
15 | {"artist":"Afghan Whigs","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":6,"lastName":"Kirby","length":179.40853,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"I'm Her Slave (Album)","status":200,"ts":1541836827796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
16 | {"artist":"CSS","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":7,"lastName":"Kirby","length":213.75955,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Let's Make Love And Listen To Death From Above [Dan Carey Mix] (remastered album version)","status":200,"ts":1541837006796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
17 | {"artist":"Mos Def \/ Talib Kweli","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":8,"lastName":"Kirby","length":141.37424,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"History","status":200,"ts":1541837219796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
18 | {"artist":"Ryan Leslie","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":9,"lastName":"Kirby","length":203.96363,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"How It Was Supposed To Be","status":200,"ts":1541837360796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
19 | {"artist":"Mark Lowry","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":10,"lastName":"Kirby","length":168.28036,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Get Together With The Lord (The Best Of Mark Lowry - Volume 2 Version)","status":200,"ts":1541837563796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
20 | {"artist":"Beirut","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":11,"lastName":"Kirby","length":230.19057,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Nantes","status":200,"ts":1541837731796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
21 | {"artist":"MODESELEKTOR FEAT. PUPPETMASTAZ","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":12,"lastName":"Kirby","length":52.79302,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"THE DARK SIDE OF THE FROG","status":200,"ts":1541837961796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
22 | {"artist":"Kid Cudi \/ Kanye West \/ Common","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":13,"lastName":"Kirby","length":237.76608,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Make Her Say","status":200,"ts":1541838013796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
23 | {"artist":"Julie Ruin","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":14,"lastName":"Kirby","length":142.47138,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Breakout A-Town","status":200,"ts":1541838250796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
24 | {"artist":"Sons And Daughters","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":15,"lastName":"Kirby","length":165.90322,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"The Bell","status":200,"ts":1541838392796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
25 | {"artist":"Children 18:3","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":16,"lastName":"Kirby","length":178.52036,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Mock The Music","status":200,"ts":1541838557796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
26 | {"artist":"Chris Cagle","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":17,"lastName":"Kirby","length":232.85506,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Miss Me Baby","status":200,"ts":1541838735796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
27 | {"artist":"John Waite","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":18,"lastName":"Kirby","length":269.76608,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Missing You","status":200,"ts":1541838967796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
28 | {"artist":"Basshunter","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":19,"lastName":"Kirby","length":223.32036,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Walk On Water","status":200,"ts":1541839236796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
29 | {"artist":"Jay-Z \/ Lil Wayne","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":20,"lastName":"Kirby","length":236.01587,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Hello Brooklyn 2.0","status":200,"ts":1541839459796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
30 | {"artist":"Snow Patrol","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":21,"lastName":"Kirby","length":273.6322,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"It's Beginning To Get To Me","status":200,"ts":1541839695796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
31 | {"artist":"Coldcut","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":22,"lastName":"Kirby","length":203.07546,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Autumn Leaves","status":200,"ts":1541839968796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
32 | {"artist":"Magic Dirt","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":23,"lastName":"Kirby","length":251.79383,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Plastic Loveless Letter","status":200,"ts":1541840171796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
33 | {"artist":"J. Karjalainen & Mustat Lasit","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":24,"lastName":"Kirby","length":336.74404,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Sinisten t\u00c3\u0083\u00c2\u00a4htien alla","status":200,"ts":1541840422796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
34 | {"artist":"OneRepublic","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":25,"lastName":"Kirby","length":224.67873,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Secrets","status":200,"ts":1541840758796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
35 | {"artist":"Nirvana","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":26,"lastName":"Kirby","length":219.08853,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Come As You Are","status":200,"ts":1541840982796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
36 | {"artist":null,"auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":0,"lastName":"Smith","length":null,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"GET","page":"Home","registration":1540306145796.0,"sessionId":359,"song":null,"status":200,"ts":1541841030796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"52"}
37 | {"artist":"Joyce Cooling","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":27,"lastName":"Kirby","length":248.11057,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"It's Time I Go (Jazz)","status":200,"ts":1541841201796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
38 | {"artist":"Beastie Boys","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":28,"lastName":"Kirby","length":211.722,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Unite (2009 Digital Remaster)","status":200,"ts":1541841449796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
39 | {"artist":"Usher Featuring Lil' Jon & Ludacris","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":29,"lastName":"Kirby","length":250.38322,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Yeah!","status":200,"ts":1541841660796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
40 | {"artist":"Nelly \/ Paul Wall \/ Ali & Gipp","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":30,"lastName":"Kirby","length":272.50893,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Grillz","status":200,"ts":1541841910796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
41 | {"artist":"The Audition","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":31,"lastName":"Kirby","length":207.20281,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"The Running Man","status":200,"ts":1541842182796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
42 | {"artist":"Savage Garden","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":32,"lastName":"Kirby","length":277.26322,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Truly Madly Deeply","status":200,"ts":1541842389796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
43 | {"artist":"Adam Green","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":33,"lastName":"Kirby","length":141.00853,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Festival Song","status":200,"ts":1541842666796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
44 | {"artist":"Tom Petty","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":34,"lastName":"Kirby","length":204.82567,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Square One (Album Version)","status":200,"ts":1541842807796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
45 | {"artist":"Muse","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":35,"lastName":"Kirby","length":209.34485,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":350,"song":"Supermassive Black Hole (Album Version)","status":200,"ts":1541843011796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
46 | {"artist":"The Gerbils","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":0,"lastName":"Hicks","length":27.01016,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":304,"song":"(iii)","status":200,"ts":1541843974796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
47 | {"artist":"Robert Plant","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":1,"lastName":"Hicks","length":265.66485,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":304,"song":"Dancing In Heaven (2006 Remastered LP Version)","status":200,"ts":1541844001796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
48 | {"artist":"Metallica","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":2,"lastName":"Hicks","length":387.02975,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":304,"song":"Welcome Home (Sanitarium)","status":200,"ts":1541844266796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
49 | {"artist":"Infected Mushroom","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":3,"lastName":"Hicks","length":506.51383,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":304,"song":"Deeply Disturbed","status":200,"ts":1541844653796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
50 | {"artist":"Eliza Doolittle","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":4,"lastName":"Hicks","length":184.60689,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":304,"song":"Rollerblades","status":200,"ts":1541845159796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
51 | {"artist":"Alvin And The Chipmunks","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":5,"lastName":"Hicks","length":162.63791,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":304,"song":"Ain't No Party","status":200,"ts":1541845343796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
52 | {"artist":"Chromeo","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":6,"lastName":"Hicks","length":348.65587,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":304,"song":"You're So Gangsta","status":200,"ts":1541845505796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
53 | {"artist":"Keisha White","auth":"Logged In","firstName":"Kevin","gender":"M","itemInSession":0,"lastName":"Arellano","length":251.42812,"level":"free","location":"Harrisburg-Carlisle, PA","method":"PUT","page":"NextSong","registration":1540006905796.0,"sessionId":387,"song":"Brother","status":200,"ts":1541853599796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"66"}
54 | {"artist":"Juanes","auth":"Logged In","firstName":"Kevin","gender":"M","itemInSession":1,"lastName":"Arellano","length":247.37914,"level":"free","location":"Harrisburg-Carlisle, PA","method":"PUT","page":"NextSong","registration":1540006905796.0,"sessionId":387,"song":"Damelo","status":200,"ts":1541853850796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"66"}
55 | {"artist":null,"auth":"Logged In","firstName":"Walter","gender":"M","itemInSession":0,"lastName":"Frye","length":null,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540919166796.0,"sessionId":180,"song":null,"status":200,"ts":1541854061796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"39"}
56 | {"artist":"Karnivool","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":0,"lastName":"Smith","length":470.80444,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":445,"song":"Umbra","status":200,"ts":1541860418796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
57 | {"artist":"WES","auth":"Logged In","firstName":"Cecilia","gender":"F","itemInSession":0,"lastName":"Owens","length":221.57016,"level":"free","location":"Atlanta-Sandy Springs-Roswell, GA","method":"PUT","page":"NextSong","registration":1541032432796.0,"sessionId":444,"song":"Alane","status":200,"ts":1541861220796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko\/20100101 Firefox\/32.0","userId":"6"}
58 | {"artist":"Asia 2001","auth":"Logged In","firstName":"Cecilia","gender":"F","itemInSession":1,"lastName":"Owens","length":150.30812,"level":"free","location":"Atlanta-Sandy Springs-Roswell, GA","method":"PUT","page":"NextSong","registration":1541032432796.0,"sessionId":444,"song":"Epilogue","status":200,"ts":1541861441796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko\/20100101 Firefox\/32.0","userId":"6"}
59 | {"artist":"Spike Milligan","auth":"Logged In","firstName":"Samuel","gender":"M","itemInSession":0,"lastName":"Gonzalez","length":220.39465,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"PUT","page":"NextSong","registration":1540492941796.0,"sessionId":384,"song":"Nothing At All","status":200,"ts":1541862959796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"61"}
60 | {"artist":"Laura Izibor","auth":"Logged In","firstName":"Anabelle","gender":"F","itemInSession":0,"lastName":"Simpson","length":211.56526,"level":"free","location":"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD","method":"PUT","page":"NextSong","registration":1541044398796.0,"sessionId":378,"song":"Carousel (PSILY Album Version)","status":200,"ts":1541867247796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"69"}
61 | {"artist":null,"auth":"Logged In","firstName":"Lily","gender":"F","itemInSession":0,"lastName":"Burns","length":null,"level":"free","location":"New York-Newark-Jersey City, NY-NJ-PA","method":"GET","page":"Home","registration":1540621059796.0,"sessionId":426,"song":null,"status":200,"ts":1541870196796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"32"}
62 | {"artist":"Ryan Adams","auth":"Logged In","firstName":"Braden","gender":"M","itemInSession":0,"lastName":"Parker","length":248.5024,"level":"free","location":"Youngstown-Warren-Boardman, OH-PA","method":"PUT","page":"NextSong","registration":1540999292796.0,"sessionId":246,"song":"Wonderwall","status":200,"ts":1541871116796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"74"}
63 | {"artist":null,"auth":"Logged In","firstName":"Adelyn","gender":"F","itemInSession":0,"lastName":"Jordan","length":null,"level":"free","location":"Chicago-Naperville-Elgin, IL-IN-WI","method":"GET","page":"Home","registration":1540130971796.0,"sessionId":391,"song":null,"status":200,"ts":1541871867796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"7"}
64 | {"artist":"Method Man","auth":"Logged In","firstName":"Adelyn","gender":"F","itemInSession":1,"lastName":"Jordan","length":204.64281,"level":"free","location":"Chicago-Naperville-Elgin, IL-IN-WI","method":"PUT","page":"NextSong","registration":1540130971796.0,"sessionId":391,"song":"The Motto","status":200,"ts":1541871869796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"7"}
65 | {"artist":"The Stanley Brothers","auth":"Logged In","firstName":"Adelyn","gender":"F","itemInSession":2,"lastName":"Jordan","length":179.69587,"level":"free","location":"Chicago-Naperville-Elgin, IL-IN-WI","method":"PUT","page":"NextSong","registration":1540130971796.0,"sessionId":391,"song":"I'm A Man Of Constant Sorrow","status":200,"ts":1541872073796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"7"}
66 | {"artist":"Dexter Freebish","auth":"Logged In","firstName":"Adelyn","gender":"F","itemInSession":3,"lastName":"Jordan","length":210.54649,"level":"free","location":"Chicago-Naperville-Elgin, IL-IN-WI","method":"PUT","page":"NextSong","registration":1540130971796.0,"sessionId":391,"song":"Deeper","status":200,"ts":1541872252796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"7"}
67 | {"artist":"Jamiroquai","auth":"Logged In","firstName":"Jacob","gender":"M","itemInSession":0,"lastName":"Rogers","length":362.05669,"level":"free","location":"San Diego-Carlsbad, CA","method":"PUT","page":"NextSong","registration":1540976199796.0,"sessionId":432,"song":"Talullah","status":200,"ts":1541873727796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit\/537.75.14 (KHTML, like Gecko) Version\/7.0.3 Safari\/537.75.14\"","userId":"18"}
68 | {"artist":"Michael Cera & Ellen Page","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":0,"lastName":"Jones","length":116.71465,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Anyone Else But You","status":200,"ts":1541876932796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
69 | {"artist":"The Cat Empire","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":1,"lastName":"Jones","length":218.22649,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"How To Explain","status":200,"ts":1541877048796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
70 | {"artist":"Bryn Terfel \/ Berliner Philharmoniker \/ Claudio Abbado","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":2,"lastName":"Jones","length":967.36608,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Wotan's Farewell & Magic Fire Music","status":200,"ts":1541877266796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
71 | {"artist":"The Fugees","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":3,"lastName":"Jones","length":281.20771,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Ready Or Not","status":200,"ts":1541878233796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
72 | {"artist":"Hardline","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":4,"lastName":"Jones","length":234.73587,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Everything","status":200,"ts":1541878514796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
73 | {"artist":"The Funky Lowlives","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":5,"lastName":"Jones","length":280.34567,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Sail Into the Sun","status":200,"ts":1541878748796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
74 | {"artist":"DL Incognito","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":6,"lastName":"Jones","length":221.07383,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Proof","status":200,"ts":1541879028796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
75 | {"artist":null,"auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":0,"lastName":"Smith","length":null,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"GET","page":"Home","registration":1540306145796.0,"sessionId":447,"song":null,"status":200,"ts":1541879108796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"52"}
76 | {"artist":"Justice","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":7,"lastName":"Jones","length":243.40853,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"TTHHEE PPAARRTTYY","status":200,"ts":1541879249796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
77 | {"artist":"Earth_ Wind & Fire","auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":1,"lastName":"Smith","length":178.20689,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"PUT","page":"NextSong","registration":1540306145796.0,"sessionId":447,"song":"Night Dreamin'","status":200,"ts":1541879270796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"52"}
78 | {"artist":"Strawbs","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":8,"lastName":"Jones","length":255.81669,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Sheep","status":200,"ts":1541879492796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
79 | {"artist":"Angus & Julia Stone","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":9,"lastName":"Jones","length":172.85179,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Wasted","status":200,"ts":1541879747796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
80 | {"artist":"Sara Bareilles","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":10,"lastName":"Jones","length":260.8322,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Love Song","status":200,"ts":1541879919796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
81 | {"artist":"Bruna Caram","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":11,"lastName":"Jones","length":198.63465,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Meus Sonhos","status":200,"ts":1541880179796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
82 | {"artist":"Nando Reis","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":12,"lastName":"Jones","length":239.82975,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"O Segundo Sol","status":200,"ts":1541880377796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
83 | {"artist":"The Black Keys","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":13,"lastName":"Jones","length":189.28281,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Same Old Thing","status":200,"ts":1541880616796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
84 | {"artist":"Kreator","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":14,"lastName":"Jones","length":294.53016,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Riot Of Violence","status":200,"ts":1541880805796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
85 | {"artist":"Audioslave","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":15,"lastName":"Jones","length":277.83791,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Show Me How To Live","status":200,"ts":1541881099796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
86 | {"artist":"Red Hot Chili Peppers","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":16,"lastName":"Jones","length":269.34812,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Parallel Universe (Album Version)","status":200,"ts":1541881376796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
87 | {"artist":"Manu Chao","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":17,"lastName":"Jones","length":288.15628,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Me Quedo Contigo [Si Me Das A Elegir]","status":200,"ts":1541881645796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
88 | {"artist":"Barry Tuckwell\/Academy of St Martin-in-the-Fields\/Sir Neville Marriner","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":18,"lastName":"Jones","length":277.15873,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"Horn Concerto No. 4 in E flat K495: II. Romance (Andante cantabile)","status":200,"ts":1541881933796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
89 | {"artist":"Ron Carter","auth":"Logged In","firstName":"Matthew","gender":"M","itemInSession":19,"lastName":"Jones","length":497.13587,"level":"paid","location":"Janesville-Beloit, WI","method":"PUT","page":"NextSong","registration":1541062818796.0,"sessionId":439,"song":"I CAN'T GET STARTED","status":200,"ts":1541882210796,"userAgent":"\"Mozilla\/5.0 (Windows NT 5.1) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"36"}
90 | {"artist":null,"auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":0,"lastName":"Harris","length":null,"level":"free","location":"Red Bluff, CA","method":"GET","page":"Home","registration":1541097374796.0,"sessionId":440,"song":null,"status":200,"ts":1541884206796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"14"}
91 | {"artist":null,"auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":1,"lastName":"Harris","length":null,"level":"free","location":"Red Bluff, CA","method":"GET","page":"Home","registration":1541097374796.0,"sessionId":440,"song":null,"status":200,"ts":1541884572796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"14"}
92 | {"artist":"Lifehouse","auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":2,"lastName":"Harris","length":195.47383,"level":"free","location":"Red Bluff, CA","method":"PUT","page":"NextSong","registration":1541097374796.0,"sessionId":440,"song":"You And Me (Wedding Version)","status":200,"ts":1541884618796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"14"}
93 | {"artist":"Yann Tiersen","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":0,"lastName":"Summers","length":158.71955,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":333,"song":"La Valse D'Am\u00c3\u0083\u00c2\u00a9lie (Version Piano)","status":200,"ts":1541885952796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
94 | {"artist":"ISRAEL & NEW BREED","auth":"Logged In","firstName":"Kaylee","gender":"F","itemInSession":1,"lastName":"Summers","length":176.48281,"level":"free","location":"Phoenix-Mesa-Scottsdale, AZ","method":"PUT","page":"NextSong","registration":1540344794796.0,"sessionId":333,"song":"Awesome Medley","status":200,"ts":1541886110796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/35.0.1916.153 Safari\/537.36\"","userId":"8"}
95 | {"artist":null,"auth":"Logged In","firstName":"Molly","gender":"F","itemInSession":0,"lastName":"Taylor","length":null,"level":"free","location":"St. Louis, MO-IL","method":"GET","page":"Home","registration":1540992766796.0,"sessionId":396,"song":null,"status":200,"ts":1541886726796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.94 Safari\/537.36\"","userId":"35"}
96 | {"artist":"Stellar Kart","auth":"Logged In","firstName":"Molly","gender":"F","itemInSession":1,"lastName":"Taylor","length":186.17424,"level":"free","location":"St. Louis, MO-IL","method":"PUT","page":"NextSong","registration":1540992766796.0,"sessionId":396,"song":"Jesus Loves You (Album Version)","status":200,"ts":1541886750796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.94 Safari\/537.36\"","userId":"35"}
--------------------------------------------------------------------------------
/data/log_data/2018/11/2018-11-11-events.json:
--------------------------------------------------------------------------------
1 | {"artist":"Frumpies","auth":"Logged In","firstName":"Anabelle","gender":"F","itemInSession":0,"lastName":"Simpson","length":134.47791,"level":"free","location":"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD","method":"PUT","page":"NextSong","registration":1541044398796.0,"sessionId":455,"song":"Fuck Kitty","status":200,"ts":1541903636796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"69"}
2 | {"artist":"Kenny G with Peabo Bryson","auth":"Logged In","firstName":"Anabelle","gender":"F","itemInSession":1,"lastName":"Simpson","length":264.75057,"level":"free","location":"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD","method":"PUT","page":"NextSong","registration":1541044398796.0,"sessionId":455,"song":"By The Time This Night Is Over","status":200,"ts":1541903770796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"69"}
3 | {"artist":"Biffy Clyro","auth":"Logged In","firstName":"Anabelle","gender":"F","itemInSession":2,"lastName":"Simpson","length":189.83138,"level":"free","location":"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD","method":"PUT","page":"NextSong","registration":1541044398796.0,"sessionId":455,"song":"God & Satan","status":200,"ts":1541904034796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"69"}
4 | {"artist":null,"auth":"Logged In","firstName":"Lily","gender":"F","itemInSession":0,"lastName":"Burns","length":null,"level":"free","location":"New York-Newark-Jersey City, NY-NJ-PA","method":"GET","page":"Home","registration":1540621059796.0,"sessionId":456,"song":null,"status":200,"ts":1541910841796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"32"}
5 | {"artist":"HIM","auth":"Logged In","firstName":"Lily","gender":"F","itemInSession":1,"lastName":"Burns","length":212.06159,"level":"free","location":"New York-Newark-Jersey City, NY-NJ-PA","method":"PUT","page":"NextSong","registration":1540621059796.0,"sessionId":456,"song":"Beautiful","status":200,"ts":1541910973796,"userAgent":"\"Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"32"}
6 | {"artist":"Matmos","auth":"Logged In","firstName":"Joseph","gender":"M","itemInSession":0,"lastName":"Gutierrez","length":1449.11628,"level":"free","location":"Columbia, SC","method":"PUT","page":"NextSong","registration":1540809335796.0,"sessionId":284,"song":"Supreme Balloon","status":200,"ts":1541911006796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit\/537.75.14 (KHTML, like Gecko) Version\/7.0.3 Safari\/537.75.14\"","userId":"75"}
7 | {"artist":"Gary Allan","auth":"Logged In","firstName":"Ryann","gender":"F","itemInSession":0,"lastName":"Smith","length":259.83955,"level":"free","location":"Palestine, TX","method":"PUT","page":"NextSong","registration":1540685147796.0,"sessionId":328,"song":"The One","status":200,"ts":1541930188796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"92"}
8 | {"artist":"Miracle Fortress","auth":"Logged In","firstName":"Ryann","gender":"F","itemInSession":1,"lastName":"Smith","length":200.9073,"level":"free","location":"Palestine, TX","method":"PUT","page":"NextSong","registration":1540685147796.0,"sessionId":328,"song":"Five Roses","status":200,"ts":1541930447796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"92"}
9 | {"artist":"Don Omar","auth":"Logged In","firstName":"Ryann","gender":"F","itemInSession":2,"lastName":"Smith","length":261.35465,"level":"free","location":"Palestine, TX","method":"PUT","page":"NextSong","registration":1540685147796.0,"sessionId":328,"song":"Cuentale","status":200,"ts":1541930647796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"92"}
10 | {"artist":"Jay-Z","auth":"Logged In","firstName":"Ryann","gender":"F","itemInSession":3,"lastName":"Smith","length":212.27057,"level":"free","location":"Palestine, TX","method":"PUT","page":"NextSong","registration":1540685147796.0,"sessionId":328,"song":"D'Evils","status":200,"ts":1541930908796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"92"}
11 | {"artist":"Red Hot Chili Peppers","auth":"Logged In","firstName":"Ryann","gender":"F","itemInSession":4,"lastName":"Smith","length":231.33995,"level":"free","location":"Palestine, TX","method":"PUT","page":"NextSong","registration":1540685147796.0,"sessionId":328,"song":"Easily (Album Version)","status":200,"ts":1541931120796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"92"}
12 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":0,"lastName":"Cuevas","length":null,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540940782796.0,"sessionId":437,"song":null,"status":200,"ts":1541932052796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
13 | {"artist":"Flogging Molly","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":1,"lastName":"Cuevas","length":361.9522,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":437,"song":"Rebels of the Sacred Heart","status":200,"ts":1541932063796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
14 | {"artist":"Reverend Horton Heat","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":2,"lastName":"Cuevas","length":158.64118,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":437,"song":"Now_ Right Now","status":200,"ts":1541932424796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
15 | {"artist":"Sea Wolf","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":3,"lastName":"Cuevas","length":232.61995,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":437,"song":"I Made A Resolution","status":200,"ts":1541932582796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
16 | {"artist":"Jason Mraz & Colbie Caillat","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":4,"lastName":"Cuevas","length":189.6224,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":437,"song":"Lucky (Album Version)","status":200,"ts":1541932814796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
17 | {"artist":"Jamie Lidell","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":5,"lastName":"Cuevas","length":175.25506,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":437,"song":"Enough\u0019s Enough","status":200,"ts":1541933003796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
18 | {"artist":"Feist","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":6,"lastName":"Cuevas","length":212.79302,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":437,"song":"Mushaboom (Postal Service Mix)","status":200,"ts":1541933178796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
19 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":7,"lastName":"Cuevas","length":null,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"Logout","registration":1540940782796.0,"sessionId":437,"song":null,"status":307,"ts":1541933179796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
20 | {"artist":null,"auth":"Logged Out","firstName":null,"gender":null,"itemInSession":8,"lastName":null,"length":null,"level":"free","location":null,"method":"GET","page":"Home","registration":null,"sessionId":437,"song":null,"status":200,"ts":1541933298796,"userAgent":null,"userId":""}
21 | {"artist":null,"auth":"Logged Out","firstName":null,"gender":null,"itemInSession":9,"lastName":null,"length":null,"level":"free","location":null,"method":"GET","page":"Home","registration":null,"sessionId":437,"song":null,"status":200,"ts":1541934031796,"userAgent":null,"userId":""}
22 | {"artist":null,"auth":"Logged Out","firstName":null,"gender":null,"itemInSession":10,"lastName":null,"length":null,"level":"free","location":null,"method":"PUT","page":"Login","registration":null,"sessionId":437,"song":null,"status":307,"ts":1541934032796,"userAgent":null,"userId":""}
23 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":11,"lastName":"Cuevas","length":null,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540940782796.0,"sessionId":437,"song":null,"status":200,"ts":1541934168796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
24 | {"artist":"Sex Slaves","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":12,"lastName":"Cuevas","length":175.51628,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":437,"song":"We're Going Out Tonight","status":200,"ts":1541934891796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
25 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":0,"lastName":"Cuevas","length":null,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540940782796.0,"sessionId":469,"song":null,"status":200,"ts":1541943439796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
26 | {"artist":"Rise Against","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":1,"lastName":"Cuevas","length":169.482,"level":"free","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":469,"song":"To Them These Streets Belong","status":200,"ts":1541943682796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
27 | {"artist":null,"auth":"Logged In","firstName":"Mohammad","gender":"M","itemInSession":0,"lastName":"Rodriguez","length":null,"level":"free","location":"Sacramento--Roseville--Arden-Arcade, CA","method":"GET","page":"Home","registration":1540511766796.0,"sessionId":441,"song":null,"status":200,"ts":1541944080796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"88"}
28 | {"artist":"Beyonc\u00c3\u0083\u00c2\u00a9","auth":"Logged In","firstName":"Mohammad","gender":"M","itemInSession":1,"lastName":"Rodriguez","length":359.54893,"level":"free","location":"Sacramento--Roseville--Arden-Arcade, CA","method":"PUT","page":"NextSong","registration":1540511766796.0,"sessionId":441,"song":"Get Me Bodied","status":200,"ts":1541944343796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"88"}
29 | {"artist":"Nate Dogg","auth":"Logged In","firstName":"Mohammad","gender":"M","itemInSession":2,"lastName":"Rodriguez","length":356.38812,"level":"free","location":"Sacramento--Roseville--Arden-Arcade, CA","method":"PUT","page":"NextSong","registration":1540511766796.0,"sessionId":441,"song":"Never Leave Me Alone","status":200,"ts":1541944702796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"88"}
30 | {"artist":null,"auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":0,"lastName":"Finley","length":null,"level":"free","location":"Richmond, VA","method":"GET","page":"Home","registration":1541013292796.0,"sessionId":443,"song":null,"status":200,"ts":1541945130796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
31 | {"artist":"Taylor Swift","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":1,"lastName":"Finley","length":233.89995,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":443,"song":"Love Story","status":200,"ts":1541945143796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
32 | {"artist":"Lynyrd Skynyrd","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":0,"lastName":"Smith","length":216.60689,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":452,"song":"Sweet home Alabama","status":200,"ts":1541945274796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
33 | {"artist":"Kelis","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":2,"lastName":"Finley","length":293.58975,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":443,"song":"Caught Out There (Explicit)","status":200,"ts":1541945376796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
34 | {"artist":"The Kills","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":3,"lastName":"Finley","length":203.38893,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":443,"song":"Last Day Of Magic","status":200,"ts":1541945669796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
35 | {"artist":null,"auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":0,"lastName":"Kirby","length":null,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"GET","page":"Home","registration":1541022995796.0,"sessionId":448,"song":null,"status":200,"ts":1541945702796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
36 | {"artist":"Collie Buddz featuring Paul Wall","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":1,"lastName":"Kirby","length":271.62077,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"What A Feeling","status":200,"ts":1541945706796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
37 | {"artist":"Charttraxx Karaoke","auth":"Logged In","firstName":"Cierra","gender":"F","itemInSession":4,"lastName":"Finley","length":225.17506,"level":"free","location":"Richmond, VA","method":"PUT","page":"NextSong","registration":1541013292796.0,"sessionId":443,"song":"Fireflies","status":200,"ts":1541945872796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"96"}
38 | {"artist":"Band Of Horses","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":2,"lastName":"Kirby","length":321.14893,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"The Funeral (Album Version)","status":200,"ts":1541945977796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
39 | {"artist":"Coldplay","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":3,"lastName":"Kirby","length":307.51302,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Clocks","status":200,"ts":1541946298796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
40 | {"artist":"Bon Jovi","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":4,"lastName":"Kirby","length":228.75383,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Have A Nice Day","status":200,"ts":1541946605796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
41 | {"artist":"P.O.D.","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":5,"lastName":"Kirby","length":203.7024,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Alive (2006 Remastered Album Version)","status":200,"ts":1541946833796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
42 | {"artist":"Bloc Party","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":6,"lastName":"Kirby","length":222.04036,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Plans (Replanned by Mogwai)","status":200,"ts":1541947036796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
43 | {"artist":"Los Prisioneros","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":7,"lastName":"Kirby","length":211.12118,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Pa Pa Pa","status":200,"ts":1541947258796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
44 | {"artist":"Octopus Project","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":8,"lastName":"Kirby","length":175.25506,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Lots More Stairs","status":200,"ts":1541947469796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
45 | {"artist":"Roudoudou","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":9,"lastName":"Kirby","length":18.41587,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Ecoute Ce Scratch","status":200,"ts":1541947644796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
46 | {"artist":"Africando","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":10,"lastName":"Kirby","length":253.54404,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Tierra Tradicional","status":200,"ts":1541947662796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
47 | {"artist":"RUN-DMC Featuring Method Man_ Kenny Cash_ Mike Ransom_ and Jamel Simmons","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":11,"lastName":"Kirby","length":266.52689,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Simmons Incorporated","status":200,"ts":1541947915796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
48 | {"artist":null,"auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":0,"lastName":"Santana","length":null,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"GET","page":"Home","registration":1540856629796.0,"sessionId":414,"song":null,"status":200,"ts":1541948035796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
49 | {"artist":"Graham Coxon","auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":1,"lastName":"Santana","length":197.14567,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"PUT","page":"NextSong","registration":1540856629796.0,"sessionId":414,"song":"I'm Goin' Away","status":200,"ts":1541948047796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
50 | {"artist":"Queens Of The Stone Age","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":12,"lastName":"Kirby","length":231.02649,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"In The Fade","status":200,"ts":1541948181796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
51 | {"artist":"Dance Gavin Dance","auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":2,"lastName":"Santana","length":193.30567,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"PUT","page":"NextSong","registration":1540856629796.0,"sessionId":414,"song":"Strawberry Andr\u00c3\u0083\u00c2\u00a9 (Album Version)","status":200,"ts":1541948244796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
52 | {"artist":null,"auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":3,"lastName":"Santana","length":null,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"GET","page":"Home","registration":1540856629796.0,"sessionId":414,"song":null,"status":200,"ts":1541948258796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
53 | {"artist":"Passion Pit","auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":13,"lastName":"Kirby","length":243.69587,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"PUT","page":"NextSong","registration":1541022995796.0,"sessionId":448,"song":"Eyes As Candles","status":200,"ts":1541948412796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
54 | {"artist":null,"auth":"Logged In","firstName":"Aleena","gender":"F","itemInSession":14,"lastName":"Kirby","length":null,"level":"paid","location":"Waterloo-Cedar Falls, IA","method":"GET","page":"Home","registration":1541022995796.0,"sessionId":448,"song":null,"status":200,"ts":1541948426796,"userAgent":"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"44"}
55 | {"artist":"Black Eyed Peas","auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":4,"lastName":"Santana","length":229.61587,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"PUT","page":"NextSong","registration":1540856629796.0,"sessionId":414,"song":"Let's Get It Started","status":200,"ts":1541948437796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
56 | {"artist":"Plastic Bertrand","auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":5,"lastName":"Santana","length":180.00934,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"PUT","page":"NextSong","registration":1540856629796.0,"sessionId":414,"song":"Ca plane pour moi","status":200,"ts":1541948666796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
57 | {"artist":"Cream","auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":6,"lastName":"Santana","length":166.5824,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"PUT","page":"NextSong","registration":1540856629796.0,"sessionId":414,"song":"Strange Brew","status":200,"ts":1541948846796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
58 | {"artist":"Coldplay","auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":7,"lastName":"Santana","length":284.39465,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"PUT","page":"NextSong","registration":1540856629796.0,"sessionId":414,"song":"A Message","status":200,"ts":1541949012796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
59 | {"artist":"Cute Is What We Aim For","auth":"Logged In","firstName":"Colm","gender":"M","itemInSession":8,"lastName":"Santana","length":172.22485,"level":"free","location":"Nashville-Davidson--Murfreesboro--Franklin, TN","method":"PUT","page":"NextSong","registration":1540856629796.0,"sessionId":414,"song":"Sweat the Battle Before the Battle Sweats You (Album Version)","status":200,"ts":1541949296796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"67"}
60 | {"artist":"Metallica","auth":"Logged In","firstName":"Connar","gender":"M","itemInSession":0,"lastName":"Moreno","length":256.9922,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"PUT","page":"NextSong","registration":1540823606796.0,"sessionId":218,"song":"Of Wolf And Man","status":200,"ts":1541952079796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit\/538.46 (KHTML, like Gecko) Version\/8.0 Safari\/538.46\"","userId":"62"}
61 | {"artist":"The Kills","auth":"Logged In","firstName":"Connar","gender":"M","itemInSession":1,"lastName":"Moreno","length":217.70404,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"PUT","page":"NextSong","registration":1540823606796.0,"sessionId":218,"song":"Tape Song","status":200,"ts":1541952335796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit\/538.46 (KHTML, like Gecko) Version\/8.0 Safari\/538.46\"","userId":"62"}
62 | {"artist":"Foo Fighters","auth":"Logged In","firstName":"Connar","gender":"M","itemInSession":2,"lastName":"Moreno","length":271.38567,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"PUT","page":"NextSong","registration":1540823606796.0,"sessionId":218,"song":"The Pretender","status":200,"ts":1541952552796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit\/538.46 (KHTML, like Gecko) Version\/8.0 Safari\/538.46\"","userId":"62"}
63 | {"artist":"Plaid","auth":"Logged In","firstName":"Connar","gender":"M","itemInSession":3,"lastName":"Moreno","length":260.96281,"level":"free","location":"Houston-The Woodlands-Sugar Land, TX","method":"PUT","page":"NextSong","registration":1540823606796.0,"sessionId":218,"song":"Eyen [Chosen by fans on Warp20.net]","status":200,"ts":1541952823796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit\/538.46 (KHTML, like Gecko) Version\/8.0 Safari\/538.46\"","userId":"62"}
64 | {"artist":null,"auth":"Logged In","firstName":"Brayden","gender":"M","itemInSession":0,"lastName":"Clark","length":null,"level":"free","location":"New York-Newark-Jersey City, NY-NJ-PA","method":"GET","page":"Home","registration":1541029236796.0,"sessionId":120,"song":null,"status":200,"ts":1541954601796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"41"}
65 | {"artist":null,"auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":0,"lastName":"Harris","length":null,"level":"free","location":"Red Bluff, CA","method":"GET","page":"Home","registration":1541097374796.0,"sessionId":462,"song":null,"status":200,"ts":1541959679796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"14"}
66 | {"artist":"The Van Pelt","auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":1,"lastName":"Harris","length":208.71791,"level":"free","location":"Red Bluff, CA","method":"PUT","page":"NextSong","registration":1541097374796.0,"sessionId":462,"song":"It's New To Me","status":200,"ts":1541959713796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"14"}
67 | {"artist":null,"auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":0,"lastName":"Smith","length":null,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"GET","page":"Home","registration":1541016707796.0,"sessionId":472,"song":null,"status":200,"ts":1541962018796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
68 | {"artist":"+44","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":1,"lastName":"Smith","length":224.57424,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":472,"song":"Make You Smile","status":200,"ts":1541962092796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
69 | {"artist":null,"auth":"Logged In","firstName":"Rylan","gender":"M","itemInSession":0,"lastName":"George","length":null,"level":"free","location":"Birmingham-Hoover, AL","method":"GET","page":"Home","registration":1541020249796.0,"sessionId":446,"song":null,"status":200,"ts":1541962134796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"16"}
70 | {"artist":"Chris Brown","auth":"Logged In","firstName":"Rylan","gender":"M","itemInSession":1,"lastName":"George","length":275.1473,"level":"free","location":"Birmingham-Hoover, AL","method":"PUT","page":"NextSong","registration":1541020249796.0,"sessionId":446,"song":"I May Never Find","status":200,"ts":1541962141796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"16"}
71 | {"artist":"KT Tunstall","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":2,"lastName":"Smith","length":170.47465,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":472,"song":"Black Horse And The Cherry Tree (Radio Version)","status":200,"ts":1541962316796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
72 | {"artist":"Cascada","auth":"Logged In","firstName":"Rylan","gender":"M","itemInSession":2,"lastName":"George","length":184.39791,"level":"free","location":"Birmingham-Hoover, AL","method":"PUT","page":"NextSong","registration":1541020249796.0,"sessionId":446,"song":"Kids In America","status":200,"ts":1541962416796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"16"}
73 | {"artist":"Incubus","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":3,"lastName":"Smith","length":293.38077,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":472,"song":"Black Heart Inertia","status":200,"ts":1541962486796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
74 | {"artist":null,"auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":4,"lastName":"Smith","length":null,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"GET","page":"Help","registration":1541016707796.0,"sessionId":472,"song":null,"status":200,"ts":1541962633796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
75 | {"artist":null,"auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":5,"lastName":"Smith","length":null,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"GET","page":"Home","registration":1541016707796.0,"sessionId":472,"song":null,"status":200,"ts":1541962656796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
76 | {"artist":null,"auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":0,"lastName":"Levine","length":null,"level":"paid","location":"Portland-South Portland, ME","method":"GET","page":"Home","registration":1540794356796.0,"sessionId":435,"song":null,"status":200,"ts":1541965304796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
77 | {"artist":"Miike Snow","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":1,"lastName":"Levine","length":220.83873,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Black & Blue","status":200,"ts":1541965305796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
78 | {"artist":"Cartola","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":2,"lastName":"Levine","length":208.92689,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Sala De Recep\u00c3\u0083\u00c2\u00a7\u00c3\u0083\u00c2\u00a3o","status":200,"ts":1541965525796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
79 | {"artist":"Kill The Client","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":3,"lastName":"Levine","length":70.68689,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Commander In Thief","status":200,"ts":1541965733796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
80 | {"artist":null,"auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":4,"lastName":"Levine","length":null,"level":"paid","location":"Portland-South Portland, ME","method":"GET","page":"Home","registration":1540794356796.0,"sessionId":435,"song":null,"status":200,"ts":1541965947796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
81 | {"artist":"Wolfmother","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":5,"lastName":"Levine","length":175.82975,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Woman","status":200,"ts":1541966183796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
82 | {"artist":"Old Crow Medicine Show","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":6,"lastName":"Levine","length":231.73179,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Wagon Wheel","status":200,"ts":1541966358796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
83 | {"artist":"Architecture In Helsinki","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":7,"lastName":"Levine","length":173.73995,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Debbie","status":200,"ts":1541966589796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
84 | {"artist":"Charlie Louvin","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":8,"lastName":"Levine","length":170.86649,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"I Think I'll Live","status":200,"ts":1541966762796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
85 | {"artist":"Miguel Morales","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":9,"lastName":"Levine","length":270.78485,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"La Derrota de Un Don Juan","status":200,"ts":1541966932796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
86 | {"artist":"Dominique A","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":10,"lastName":"Levine","length":153.20771,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Le Courage Des Oiseaux","status":200,"ts":1541967202796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
87 | {"artist":"Cock Sparrer","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":11,"lastName":"Levine","length":203.25832,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Run With The Blind","status":200,"ts":1541967355796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
88 | {"artist":"Jimmy Wakely","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":12,"lastName":"Levine","length":165.74649,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"I Love You So Much It Hurts","status":200,"ts":1541967558796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
89 | {"artist":"Peter Doherty","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":13,"lastName":"Levine","length":217.02485,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"A Little Death Around the Eyes","status":200,"ts":1541967723796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
90 | {"artist":"Katy Perry","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":14,"lastName":"Levine","length":246.41261,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":435,"song":"Thinking Of You","status":200,"ts":1541967940796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
91 | {"artist":"Sidewalk Prophets","auth":"Logged In","firstName":"Molly","gender":"F","itemInSession":0,"lastName":"Taylor","length":260.62322,"level":"free","location":"St. Louis, MO-IL","method":"PUT","page":"NextSong","registration":1540992766796.0,"sessionId":464,"song":"You Love Me Anyway (Album)","status":200,"ts":1541970568796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.94 Safari\/537.36\"","userId":"35"}
92 | {"artist":"Rise Against","auth":"Logged In","firstName":"Molly","gender":"F","itemInSession":1,"lastName":"Taylor","length":221.17832,"level":"free","location":"St. Louis, MO-IL","method":"PUT","page":"NextSong","registration":1540992766796.0,"sessionId":464,"song":"Torches","status":200,"ts":1541970828796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.94 Safari\/537.36\"","userId":"35"}
93 | {"artist":"K'Naan","auth":"Logged In","firstName":"Molly","gender":"F","itemInSession":2,"lastName":"Taylor","length":220.49914,"level":"free","location":"St. Louis, MO-IL","method":"PUT","page":"NextSong","registration":1540992766796.0,"sessionId":464,"song":"Wavin' Flag","status":200,"ts":1541971049796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/37.0.2062.94 Safari\/537.36\"","userId":"35"}
94 | {"artist":"Patrick Jumpen","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":0,"lastName":"Smith","length":208.87465,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":480,"song":"Holiday","status":200,"ts":1541979540796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
95 | {"artist":"Alicia Keys","auth":"Logged In","firstName":"Ryan","gender":"M","itemInSession":1,"lastName":"Smith","length":216.47628,"level":"free","location":"San Jose-Sunnyvale-Santa Clara, CA","method":"PUT","page":"NextSong","registration":1541016707796.0,"sessionId":480,"song":"Empire State Of Mind (Part II) Broken Down","status":200,"ts":1541979748796,"userAgent":"\"Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Ubuntu Chromium\/36.0.1985.125 Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"26"}
--------------------------------------------------------------------------------
/data/log_data/2018/11/2018-11-25-events.json:
--------------------------------------------------------------------------------
1 | {"artist":"matchbox twenty","auth":"Logged In","firstName":"Jayden","gender":"F","itemInSession":0,"lastName":"Duffy","length":177.65832,"level":"free","location":"Seattle-Tacoma-Bellevue, WA","method":"PUT","page":"NextSong","registration":1540146037796.0,"sessionId":846,"song":"Argue (LP Version)","status":200,"ts":1543109954796,"userAgent":"\"Mozilla\/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit\/537.51.2 (KHTML, like Gecko) Version\/7.0 Mobile\/11D257 Safari\/9537.53\"","userId":"76"}
2 | {"artist":"The Lonely Island \/ T-Pain","auth":"Logged In","firstName":"Jayden","gender":"F","itemInSession":1,"lastName":"Duffy","length":156.23791,"level":"free","location":"Seattle-Tacoma-Bellevue, WA","method":"PUT","page":"NextSong","registration":1540146037796.0,"sessionId":846,"song":"I'm On A Boat","status":200,"ts":1543110131796,"userAgent":"\"Mozilla\/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit\/537.51.2 (KHTML, like Gecko) Version\/7.0 Mobile\/11D257 Safari\/9537.53\"","userId":"76"}
3 | {"artist":null,"auth":"Logged In","firstName":"Jayden","gender":"F","itemInSession":2,"lastName":"Duffy","length":null,"level":"free","location":"Seattle-Tacoma-Bellevue, WA","method":"GET","page":"Home","registration":1540146037796.0,"sessionId":846,"song":null,"status":200,"ts":1543110132796,"userAgent":"\"Mozilla\/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit\/537.51.2 (KHTML, like Gecko) Version\/7.0 Mobile\/11D257 Safari\/9537.53\"","userId":"76"}
4 | {"artist":null,"auth":"Logged In","firstName":"Jayden","gender":"F","itemInSession":3,"lastName":"Duffy","length":null,"level":"free","location":"Seattle-Tacoma-Bellevue, WA","method":"GET","page":"Settings","registration":1540146037796.0,"sessionId":846,"song":null,"status":200,"ts":1543110168796,"userAgent":"\"Mozilla\/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit\/537.51.2 (KHTML, like Gecko) Version\/7.0 Mobile\/11D257 Safari\/9537.53\"","userId":"76"}
5 | {"artist":null,"auth":"Logged In","firstName":"Jayden","gender":"F","itemInSession":4,"lastName":"Duffy","length":null,"level":"free","location":"Seattle-Tacoma-Bellevue, WA","method":"PUT","page":"Save Settings","registration":1540146037796.0,"sessionId":846,"song":null,"status":307,"ts":1543110169796,"userAgent":"\"Mozilla\/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit\/537.51.2 (KHTML, like Gecko) Version\/7.0 Mobile\/11D257 Safari\/9537.53\"","userId":"76"}
6 | {"artist":"John Mayer","auth":"Logged In","firstName":"Wyatt","gender":"M","itemInSession":0,"lastName":"Scott","length":275.27791,"level":"free","location":"Eureka-Arcata-Fortuna, CA","method":"PUT","page":"NextSong","registration":1540872073796.0,"sessionId":856,"song":"All We Ever Do Is Say Goodbye","status":200,"ts":1543113347796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; Trident\/7.0; rv:11.0) like Gecko","userId":"9"}
7 | {"artist":null,"auth":"Logged In","firstName":"Wyatt","gender":"M","itemInSession":1,"lastName":"Scott","length":null,"level":"free","location":"Eureka-Arcata-Fortuna, CA","method":"GET","page":"Home","registration":1540872073796.0,"sessionId":856,"song":null,"status":200,"ts":1543113365796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; Trident\/7.0; rv:11.0) like Gecko","userId":"9"}
8 | {"artist":"10_000 Maniacs","auth":"Logged In","firstName":"Wyatt","gender":"M","itemInSession":2,"lastName":"Scott","length":251.8722,"level":"free","location":"Eureka-Arcata-Fortuna, CA","method":"PUT","page":"NextSong","registration":1540872073796.0,"sessionId":856,"song":"Gun Shy (LP Version)","status":200,"ts":1543113622796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; Trident\/7.0; rv:11.0) like Gecko","userId":"9"}
9 | {"artist":"Leona Lewis","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":0,"lastName":"Cuevas","length":203.88526,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Forgive Me","status":200,"ts":1543122348796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
10 | {"artist":"Nine Inch Nails","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":1,"lastName":"Cuevas","length":277.83791,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"La Mer","status":200,"ts":1543122551796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
11 | {"artist":"Audioslave","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":2,"lastName":"Cuevas","length":334.91546,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"I Am The Highway","status":200,"ts":1543122828796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
12 | {"artist":"Kid Rock","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":3,"lastName":"Cuevas","length":296.95955,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"All Summer Long (Album Version)","status":200,"ts":1543123162796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
13 | {"artist":"The Jets","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":4,"lastName":"Cuevas","length":220.89098,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"I Do You","status":200,"ts":1543123458796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
14 | {"artist":"The Gerbils","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":5,"lastName":"Cuevas","length":27.01016,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"(iii)","status":200,"ts":1543123678796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
15 | {"artist":"Damian Marley \/ Stephen Marley \/ Yami Bolo","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":6,"lastName":"Cuevas","length":304.69179,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Still Searching","status":200,"ts":1543123705796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
16 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":7,"lastName":"Cuevas","length":null,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540940782796.0,"sessionId":916,"song":null,"status":200,"ts":1543124166796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
17 | {"artist":"The Bloody Beetroots","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":8,"lastName":"Cuevas","length":201.97832,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Warp 1.9 (feat. Steve Aoki)","status":200,"ts":1543124951796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
18 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":9,"lastName":"Cuevas","length":null,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540940782796.0,"sessionId":916,"song":null,"status":200,"ts":1543125120796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
19 | {"artist":"The Specials","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":10,"lastName":"Cuevas","length":188.81261,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Rat Race","status":200,"ts":1543125152796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
20 | {"artist":"The Lively Ones","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":11,"lastName":"Cuevas","length":142.52363,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Walkin' The Board (LP Version)","status":200,"ts":1543125340796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
21 | {"artist":"Katie Melua","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":12,"lastName":"Cuevas","length":252.78649,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Blues In The Night","status":200,"ts":1543125482796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
22 | {"artist":"Jason Mraz","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":13,"lastName":"Cuevas","length":243.48689,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"I'm Yours (Album Version)","status":200,"ts":1543125734796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
23 | {"artist":"Fisher","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":14,"lastName":"Cuevas","length":133.98159,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Rianna","status":200,"ts":1543125977796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
24 | {"artist":"Zee Avi","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":15,"lastName":"Cuevas","length":160.62649,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"No Christmas For Me","status":200,"ts":1543126110796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
25 | {"artist":"Black Eyed Peas","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":16,"lastName":"Cuevas","length":289.12281,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"I Gotta Feeling","status":200,"ts":1543126270796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
26 | {"artist":"Emiliana Torrini","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":17,"lastName":"Cuevas","length":184.29342,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"Sunny Road","status":200,"ts":1543126559796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
27 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":18,"lastName":"Cuevas","length":null,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540940782796.0,"sessionId":916,"song":null,"status":200,"ts":1543126820796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
28 | {"artist":"Days Of The New","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":19,"lastName":"Cuevas","length":258.5073,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"The Down Town","status":200,"ts":1543128418796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
29 | {"artist":"Julio Iglesias duet with Willie Nelson","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":20,"lastName":"Cuevas","length":212.16608,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":916,"song":"To All The Girls I've Loved Before (With Julio Iglesias)","status":200,"ts":1543128676796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
30 | {"artist":null,"auth":"Logged In","firstName":"Jacqueline","gender":"F","itemInSession":0,"lastName":"Lynch","length":null,"level":"paid","location":"Atlanta-Sandy Springs-Roswell, GA","method":"GET","page":"Home","registration":1540223723796.0,"sessionId":914,"song":null,"status":200,"ts":1543133256796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"29"}
31 | {"artist":"Jason Mraz & Colbie Caillat","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":0,"lastName":"Roth","length":189.6224,"level":"free","location":"Indianapolis-Carmel-Anderson, IN","method":"PUT","page":"NextSong","registration":1540699429796.0,"sessionId":704,"song":"Lucky (Album Version)","status":200,"ts":1543135208796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"78"}
32 | {"artist":null,"auth":"Logged In","firstName":"Anabelle","gender":"F","itemInSession":0,"lastName":"Simpson","length":null,"level":"free","location":"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD","method":"GET","page":"Home","registration":1541044398796.0,"sessionId":901,"song":null,"status":200,"ts":1543145299796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"69"}
33 | {"artist":"R. Kelly","auth":"Logged In","firstName":"Anabelle","gender":"F","itemInSession":1,"lastName":"Simpson","length":234.39628,"level":"free","location":"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD","method":"PUT","page":"NextSong","registration":1541044398796.0,"sessionId":901,"song":"The World's Greatest","status":200,"ts":1543145305796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"69"}
34 | {"artist":null,"auth":"Logged In","firstName":"Kynnedi","gender":"F","itemInSession":0,"lastName":"Sanchez","length":null,"level":"free","location":"Cedar Rapids, IA","method":"GET","page":"Home","registration":1541079034796.0,"sessionId":804,"song":null,"status":200,"ts":1543151224796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"89"}
35 | {"artist":"Jacky Terrasson","auth":"Logged In","firstName":"Marina","gender":"F","itemInSession":0,"lastName":"Sutton","length":342.7522,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1541064343796.0,"sessionId":373,"song":"Le Jardin d'Hiver","status":200,"ts":1543154200796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"48"}
36 | {"artist":"Papa Roach","auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":0,"lastName":"Harris","length":202.1873,"level":"free","location":"Red Bluff, CA","method":"PUT","page":"NextSong","registration":1541097374796.0,"sessionId":813,"song":"Alive","status":200,"ts":1543155228796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"14"}
37 | {"artist":"Burt Bacharach","auth":"Logged In","firstName":"Theodore","gender":"M","itemInSession":1,"lastName":"Harris","length":156.96934,"level":"free","location":"Red Bluff, CA","method":"PUT","page":"NextSong","registration":1541097374796.0,"sessionId":813,"song":"Casino Royale Theme (Main Title)","status":200,"ts":1543155430796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"14"}
38 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":0,"lastName":"Cuevas","length":null,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"GET","page":"Home","registration":1540940782796.0,"sessionId":923,"song":null,"status":200,"ts":1543161483796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
39 | {"artist":"Floetry","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":1,"lastName":"Cuevas","length":254.48444,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":923,"song":"Sunshine","status":200,"ts":1543161985796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
40 | {"artist":"The Rakes","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":2,"lastName":"Cuevas","length":225.2273,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":923,"song":"Leave The City And Come Home","status":200,"ts":1543162239796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
41 | {"artist":"Dwight Yoakam","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":3,"lastName":"Cuevas","length":239.3073,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":923,"song":"You're The One","status":200,"ts":1543162464796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
42 | {"artist":"Ween","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":4,"lastName":"Cuevas","length":228.10077,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":923,"song":"Voodoo Lady","status":200,"ts":1543162703796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
43 | {"artist":"Caf\u00c3\u0083\u00c2\u00a9 Quijano","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":5,"lastName":"Cuevas","length":197.32853,"level":"paid","location":"San Francisco-Oakland-Hayward, CA","method":"PUT","page":"NextSong","registration":1540940782796.0,"sessionId":923,"song":"La Lola","status":200,"ts":1543162931796,"userAgent":"Mozilla\/5.0 (Windows NT 5.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"49"}
44 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":0,"lastName":"Roth","length":null,"level":"free","location":"Indianapolis-Carmel-Anderson, IN","method":"GET","page":"Home","registration":1540699429796.0,"sessionId":925,"song":null,"status":200,"ts":1543166945796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"78"}
45 | {"artist":"Parov Stelar","auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":1,"lastName":"Roth","length":203.65016,"level":"free","location":"Indianapolis-Carmel-Anderson, IN","method":"PUT","page":"NextSong","registration":1540699429796.0,"sessionId":925,"song":"Good Bye Emily (feat. Gabriella Hanninen)","status":200,"ts":1543166945796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"78"}
46 | {"artist":null,"auth":"Logged In","firstName":"Chloe","gender":"F","itemInSession":2,"lastName":"Roth","length":null,"level":"free","location":"Indianapolis-Carmel-Anderson, IN","method":"GET","page":"Home","registration":1540699429796.0,"sessionId":925,"song":null,"status":200,"ts":1543166953796,"userAgent":"Mozilla\/5.0 (Windows NT 6.1; rv:31.0) Gecko\/20100101 Firefox\/31.0","userId":"78"}
47 | {"artist":null,"auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":0,"lastName":"Levine","length":null,"level":"paid","location":"Portland-South Portland, ME","method":"GET","page":"Home","registration":1540794356796.0,"sessionId":915,"song":null,"status":200,"ts":1543169974796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
48 | {"artist":"Bryan Adams","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":1,"lastName":"Levine","length":166.29506,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":915,"song":"I Will Always Return","status":200,"ts":1543170092796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
49 | {"artist":"KT Tunstall","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":2,"lastName":"Levine","length":192.31302,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":915,"song":"White Bird","status":200,"ts":1543170258796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
50 | {"artist":"Technicolour","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":3,"lastName":"Levine","length":235.12771,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":915,"song":"Turn Away","status":200,"ts":1543170450796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
51 | {"artist":"The Dears","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":4,"lastName":"Levine","length":289.95873,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":915,"song":"Lost In The Plot","status":200,"ts":1543170685796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
52 | {"artist":"Go West","auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":5,"lastName":"Levine","length":259.49995,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"NextSong","registration":1540794356796.0,"sessionId":915,"song":"Never Let Them See You Sweat","status":200,"ts":1543170974796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
53 | {"artist":null,"auth":"Logged In","firstName":"Tegan","gender":"F","itemInSession":6,"lastName":"Levine","length":null,"level":"paid","location":"Portland-South Portland, ME","method":"PUT","page":"Logout","registration":1540794356796.0,"sessionId":915,"song":null,"status":307,"ts":1543170975796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.143 Safari\/537.36\"","userId":"80"}
54 | {"artist":null,"auth":"Logged In","firstName":"Sylvie","gender":"F","itemInSession":0,"lastName":"Cruz","length":null,"level":"free","location":"Washington-Arlington-Alexandria, DC-VA-MD-WV","method":"GET","page":"Home","registration":1540266185796.0,"sessionId":912,"song":null,"status":200,"ts":1543170999796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.77.4 (KHTML, like Gecko) Version\/7.0.5 Safari\/537.77.4\"","userId":"10"}
55 | {"artist":null,"auth":"Logged Out","firstName":null,"gender":null,"itemInSession":7,"lastName":null,"length":null,"level":"paid","location":null,"method":"GET","page":"Home","registration":null,"sessionId":915,"song":null,"status":200,"ts":1543171228796,"userAgent":null,"userId":""}
56 | {"artist":"Gondwana","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":0,"lastName":"Hicks","length":262.5824,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":814,"song":"Mi Princesa","status":200,"ts":1543189690796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
57 | {"artist":null,"auth":"Logged In","firstName":"Kevin","gender":"M","itemInSession":0,"lastName":"Arellano","length":null,"level":"free","location":"Harrisburg-Carlisle, PA","method":"GET","page":"Home","registration":1540006905796.0,"sessionId":855,"song":null,"status":200,"ts":1543189812796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/36.0.1985.125 Safari\/537.36\"","userId":"66"}
58 | {"artist":"Ella Fitzgerald","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":1,"lastName":"Hicks","length":427.15383,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":814,"song":"On Green Dolphin Street (Medley) (1999 Digital Remaster)","status":200,"ts":1543189952796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
59 | {"artist":"Creedence Clearwater Revival","auth":"Logged In","firstName":"Jordan","gender":"F","itemInSession":2,"lastName":"Hicks","length":184.73751,"level":"free","location":"Salinas, CA","method":"PUT","page":"NextSong","registration":1540008898796.0,"sessionId":814,"song":"Run Through The Jungle","status":200,"ts":1543190379796,"userAgent":"\"Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit\/537.78.2 (KHTML, like Gecko) Version\/7.0.6 Safari\/537.78.2\"","userId":"37"}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAAW128F429D538.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARD7TVE1187B99BFB1", "artist_latitude": null, "artist_longitude": null, "artist_location": "California - LA", "artist_name": "Casual", "song_id": "SOMZWCG12A8C13C480", "title": "I Didn't Mean To", "duration": 218.93179, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAABD128F429CF47.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARMJAGH1187FB546F3", "artist_latitude": 35.14968, "artist_longitude": -90.04892, "artist_location": "Memphis, TN", "artist_name": "The Box Tops", "song_id": "SOCIWDW12A8C13D406", "title": "Soul Deep", "duration": 148.03546, "year": 1969}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAADZ128F9348C2E.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARKRRTF1187B9984DA", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Sonora Santanera", "song_id": "SOXVLOJ12AB0189215", "title": "Amor De Cabaret", "duration": 177.47546, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAEF128F4273421.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR7G5I41187FB4CE6C", "artist_latitude": null, "artist_longitude": null, "artist_location": "London, England", "artist_name": "Adam Ant", "song_id": "SONHOTT12A8C13493C", "title": "Something Girls", "duration": 233.40363, "year": 1982}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAFD128F92F423A.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARXR32B1187FB57099", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Gob", "song_id": "SOFSOCN12A8C143F5D", "title": "Face the Ashes", "duration": 209.60608, "year": 2007}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAMO128F1481E7F.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARKFYS91187B98E58F", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Jeff And Sheri Easter", "song_id": "SOYMRWW12A6D4FAB14", "title": "The Moon And I (Ordinary Day Album Version)", "duration": 267.7024, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAMQ128F1460CD3.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARD0S291187B9B7BF5", "artist_latitude": null, "artist_longitude": null, "artist_location": "Ohio", "artist_name": "Rated R", "song_id": "SOMJBYD12A6D4F8557", "title": "Keepin It Real (Skit)", "duration": 114.78159, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAPK128E0786D96.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR10USD1187B99F3F1", "artist_latitude": null, "artist_longitude": null, "artist_location": "Burlington, Ontario, Canada", "artist_name": "Tweeterfriendly Music", "song_id": "SOHKNRJ12A6701D1F8", "title": "Drop of Rain", "duration": 189.57016, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAARJ128F9320760.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR8ZCNI1187B9A069B", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Planet P Project", "song_id": "SOIAZJW12AB01853F1", "title": "Pink World", "duration": 269.81832, "year": 1984}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAVG12903CFA543.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARNTLGG11E2835DDB9", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Clp", "song_id": "SOUDSGM12AC9618304", "title": "Insatiable (Instrumental Version)", "duration": 266.39628, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/A/TRAAAVO128F93133D4.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARGSJW91187B9B1D6B", "artist_latitude": 35.21962, "artist_longitude": -80.01955, "artist_location": "North Carolina", "artist_name": "JennyAnyKind", "song_id": "SOQHXMF12AB0182363", "title": "Young Boy Blues", "duration": 218.77506, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABCL128F4286650.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARC43071187B990240", "artist_latitude": null, "artist_longitude": null, "artist_location": "Wisner, LA", "artist_name": "Wayne Watson", "song_id": "SOKEJEJ12A8C13E0D0", "title": "The Urgency (LP Version)", "duration": 245.21098, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABDL12903CAABBA.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARL7K851187B99ACD2", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Andy Andy", "song_id": "SOMUYGI12AB0188633", "title": "La Culpa", "duration": 226.35057, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABJL12903CDCF1A.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARHHO3O1187B989413", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Bob Azzam", "song_id": "SORAMLE12AB017C8B0", "title": "Auguri Cha Cha", "duration": 191.84281, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABJV128F1460C49.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARIK43K1187B9AE54C", "artist_latitude": null, "artist_longitude": null, "artist_location": "Beverly Hills, CA", "artist_name": "Lionel Richie", "song_id": "SOBONFF12A6D4F84D8", "title": "Tonight Will Be Alright", "duration": 307.3824, "year": 1986}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABLR128F423B7E3.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARD842G1187B997376", "artist_latitude": 43.64856, "artist_longitude": -79.38533, "artist_location": "Toronto, Ontario, Canada", "artist_name": "Blue Rodeo", "song_id": "SOHUOAP12A8AE488E9", "title": "Floating", "duration": 491.12771, "year": 1987}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABNV128F425CEE1.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARIG6O41187B988BDD", "artist_latitude": 37.16793, "artist_longitude": -95.84502, "artist_location": "United States", "artist_name": "Richard Souther", "song_id": "SOUQQEA12A8C134B1B", "title": "High Tide", "duration": 228.5971, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABRB128F9306DD5.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR1ZHYZ1187FB3C717", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Faiz Ali Faiz", "song_id": "SOILPQQ12AB017E82A", "title": "Sohna Nee Sohna Data", "duration": 599.24853, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABVM128F92CA9DC.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARYKCQI1187FB3B18F", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Tesla", "song_id": "SOXLBJT12A8C140925", "title": "Caught In A Dream", "duration": 290.29832, "year": 2004}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABXG128F9318EBD.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARNPAGP1241B9C7FD4", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "lextrical", "song_id": "SOZVMJI12AB01808AF", "title": "Synthetic Dream", "duration": 165.69424, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABYN12903CFD305.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARQGYP71187FB44566", "artist_latitude": 34.31109, "artist_longitude": -94.02978, "artist_location": "Mineola, AR", "artist_name": "Jimmy Wakely", "song_id": "SOWTBJW12AC468AC6E", "title": "Broken-Down Merry-Go-Round", "duration": 151.84934, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/B/TRAABYW128F4244559.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARI3BMM1187FB4255E", "artist_latitude": 38.8991, "artist_longitude": -77.029, "artist_location": "Washington", "artist_name": "Alice Stuart", "song_id": "SOBEBDG12A58A76D60", "title": "Kassie Jones", "duration": 220.78649, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACCG128F92E8A55.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR5KOSW1187FB35FF4", "artist_latitude": 49.80388, "artist_longitude": 15.47491, "artist_location": "Dubai UAE", "artist_name": "Elena", "song_id": "SOZCTXZ12AB0182364", "title": "Setanta matins", "duration": 269.58322, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACER128F4290F96.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARMAC4T1187FB3FA4C", "artist_latitude": 40.82624, "artist_longitude": -74.47995, "artist_location": "Morris Plains, NJ", "artist_name": "The Dillinger Escape Plan", "song_id": "SOBBUGU12A8C13E95D", "title": "Setting Fire to Sleeping Giants", "duration": 207.77751, "year": 2004}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACFV128F935E50B.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR47JEX1187B995D81", "artist_latitude": 37.83721, "artist_longitude": -94.35868, "artist_location": "Nevada, MO", "artist_name": "SUE THOMPSON", "song_id": "SOBLGCN12AB0183212", "title": "James (Hold The Ladder Steady)", "duration": 124.86485, "year": 1985}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACHN128F1489601.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARGIWFO1187B9B55B7", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Five Bolt Main", "song_id": "SOPSWQW12A6D4F8781", "title": "Made Like This (Live)", "duration": 225.09669, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACIW12903CC0F6D.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARNTLGG11E2835DDB9", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Clp", "song_id": "SOZQDIU12A58A7BCF6", "title": "Superconfidential", "duration": 338.31138, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACLV128F427E123.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARDNS031187B9924F0", "artist_latitude": 32.67828, "artist_longitude": -83.22295, "artist_location": "Georgia", "artist_name": "Tim Wilson", "song_id": "SONYPOM12A8C13B2D7", "title": "I Think My Wife Is Running Around On Me (Taco Hell)", "duration": 186.48771, "year": 2005}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACNS128F14A2DF5.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AROUOZZ1187B9ABE51", "artist_latitude": 40.79195, "artist_longitude": -73.94512, "artist_location": "New York, NY [Spanish Harlem]", "artist_name": "Willie Bobo", "song_id": "SOBZBAZ12A6D4F8742", "title": "Spanish Grease", "duration": 168.25424, "year": 1997}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACOW128F933E35F.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARH4Z031187B9A71F2", "artist_latitude": 40.73197, "artist_longitude": -74.17418, "artist_location": "Newark, NJ", "artist_name": "Faye Adams", "song_id": "SOVYKGO12AB0187199", "title": "Crazy Mixed Up World", "duration": 156.39465, "year": 1961}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACPE128F421C1B9.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARB29H41187B98F0EF", "artist_latitude": 41.88415, "artist_longitude": -87.63241, "artist_location": "Chicago", "artist_name": "Terry Callier", "song_id": "SOGNCJP12A58A80271", "title": "Do You Finally Need A Friend", "duration": 342.56934, "year": 1972}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACQT128F9331780.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR1Y2PT1187FB5B9CE", "artist_latitude": 27.94017, "artist_longitude": -82.32547, "artist_location": "Brandon", "artist_name": "John Wesley", "song_id": "SOLLHMX12AB01846DC", "title": "The Emperor Falls", "duration": 484.62322, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACSL128F93462F4.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARAJPHH1187FB5566A", "artist_latitude": 40.7038, "artist_longitude": -73.83168, "artist_location": "Queens, NY", "artist_name": "The Shangri-Las", "song_id": "SOYTPEP12AB0180E7B", "title": "Twist and Shout", "duration": 164.80608, "year": 1964}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACTB12903CAAF15.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR0RCMP1187FB3F427", "artist_latitude": 30.08615, "artist_longitude": -94.10158, "artist_location": "Beaumont, TX", "artist_name": "Billie Jo Spears", "song_id": "SOGXHEG12AB018653E", "title": "It Makes No Difference Now", "duration": 133.32853, "year": 1992}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACVS128E078BE39.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AREBBGV1187FB523D2", "artist_latitude": null, "artist_longitude": null, "artist_location": "Houston, TX", "artist_name": "Mike Jones (Featuring CJ_ Mello & Lil' Bran)", "song_id": "SOOLYAZ12A6701F4A6", "title": "Laws Patrolling (Album Version)", "duration": 173.66159, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/A/C/TRAACZK128F4243829.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARGUVEV1187B98BA17", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Sierra Maestra", "song_id": "SOGOSOV12AF72A285E", "title": "\u00bfD\u00f3nde va Chichi?", "duration": 313.12934, "year": 1997}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABACN128F425B784.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARD7TVE1187B99BFB1", "artist_latitude": null, "artist_longitude": null, "artist_location": "California - LA", "artist_name": "Casual", "song_id": "SOQLGFP12A58A7800E", "title": "OAKtown", "duration": 259.44771, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAFJ128F42AF24E.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR3JMC51187B9AE49D", "artist_latitude": 28.53823, "artist_longitude": -81.37739, "artist_location": "Orlando, FL", "artist_name": "Backstreet Boys", "song_id": "SOPVXLX12A8C1402D5", "title": "Larger Than Life", "duration": 236.25098, "year": 1999}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAFP128F931E9A1.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARPBNLO1187FB3D52F", "artist_latitude": 40.71455, "artist_longitude": -74.00712, "artist_location": "New York, NY", "artist_name": "Tiny Tim", "song_id": "SOAOIBZ12AB01815BE", "title": "I Hold Your Hand In Mine [Live At Royal Albert Hall]", "duration": 43.36281, "year": 2000}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAIO128F42938F9.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR9AWNF1187B9AB0B4", "artist_latitude": null, "artist_longitude": null, "artist_location": "Seattle, Washington USA", "artist_name": "Kenny G featuring Daryl Hall", "song_id": "SOZHPGD12A8C1394FE", "title": "Baby Come To Me", "duration": 236.93016, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABATO128F42627E9.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AROGWRA122988FEE45", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Christos Dantis", "song_id": "SOSLAVG12A8C13397F", "title": "Den Pai Alo", "duration": 243.82649, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAVQ12903CBF7E0.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARMBR4Y1187B9990EB", "artist_latitude": 37.77916, "artist_longitude": -122.42005, "artist_location": "California - SF", "artist_name": "David Martin", "song_id": "SOTTDKS12AB018D69B", "title": "It Wont Be Christmas", "duration": 241.47546, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAWW128F4250A31.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARQ9BO41187FB5CF1F", "artist_latitude": 40.99471, "artist_longitude": -77.60454, "artist_location": "Pennsylvania", "artist_name": "John Davis", "song_id": "SOMVWWT12A58A7AE05", "title": "Knocked Out Of The Park", "duration": 183.17016, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAXL128F424FC50.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARKULSX1187FB45F84", "artist_latitude": 39.49974, "artist_longitude": -111.54732, "artist_location": "Utah", "artist_name": "Trafik", "song_id": "SOQVMXR12A81C21483", "title": "Salt In NYC", "duration": 424.12363, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAXR128F426515F.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARI2JSK1187FB496EF", "artist_latitude": 51.50632, "artist_longitude": -0.12714, "artist_location": "London, England", "artist_name": "Nick Ingman;Gavyn Wright", "song_id": "SODUJBS12A8C132150", "title": "Wessex Loses a Bride", "duration": 111.62077, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAXV128F92F6AE3.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AREDBBQ1187B98AFF5", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Eddie Calvert", "song_id": "SOBBXLX12A58A79DDA", "title": "Erica (2005 Digital Remaster)", "duration": 138.63138, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/A/TRABAZH128F930419A.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR7ZKHQ1187B98DD73", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Glad", "song_id": "SOTUKVB12AB0181477", "title": "Blessed Assurance", "duration": 270.602, "year": 1993}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBAM128F429D223.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARBGXIG122988F409D", "artist_latitude": 37.77916, "artist_longitude": -122.42005, "artist_location": "California - SF", "artist_name": "Steel Rain", "song_id": "SOOJPRH12A8C141995", "title": "Loaded Like A Gun", "duration": 173.19138, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBBV128F42967D7.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR7SMBG1187B9B9066", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Los Manolos", "song_id": "SOBCOSW12A8C13D398", "title": "Rumba De Barcelona", "duration": 218.38322, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBJE12903CDB442.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARGCY1Y1187B9A4FA5", "artist_latitude": 36.16778, "artist_longitude": -86.77836, "artist_location": "Nashville, TN.", "artist_name": "Gloriana", "song_id": "SOQOTLQ12AB01868D0", "title": "Clementina Santaf\u00e8", "duration": 153.33832, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBKX128F4285205.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR36F9J1187FB406F1", "artist_latitude": 56.27609, "artist_longitude": 9.51695, "artist_location": "Denmark", "artist_name": "Bombay Rockers", "song_id": "SOBKWDJ12A8C13B2F3", "title": "Wild Rose (Back 2 Basics Mix)", "duration": 230.71302, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBLU128F93349CF.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARNNKDK1187B98BBD5", "artist_latitude": 45.80726, "artist_longitude": 15.9676, "artist_location": "Zagreb Croatia", "artist_name": "Jinx", "song_id": "SOFNOQK12AB01840FC", "title": "Kutt Free (DJ Volume Remix)", "duration": 407.37914, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBNP128F932546F.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR62SOJ1187FB47BB5", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Chase & Status", "song_id": "SOGVQGJ12AB017F169", "title": "Ten Tonne", "duration": 337.68444, "year": 2005}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBOP128F931B50D.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARBEBBY1187B9B43DB", "artist_latitude": null, "artist_longitude": null, "artist_location": "Gainesville, FL", "artist_name": "Tom Petty", "song_id": "SOFFKZS12AB017F194", "title": "A Higher Place (Album Version)", "duration": 236.17261, "year": 1994}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBOR128F4286200.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARDR4AC1187FB371A1", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Montserrat Caball\u00e9;Placido Domingo;Vicente Sardinero;Judith Blegen;Sherrill Milnes;Georg Solti", "song_id": "SOBAYLL12A8C138AF9", "title": "Sono andati? Fingevo di dormire", "duration": 511.16363, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBTA128F933D304.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARAGB2O1187FB3A161", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Pucho & His Latin Soul Brothers", "song_id": "SOLEYHO12AB0188A85", "title": "Got My Mojo Workin", "duration": 338.23302, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBVJ128F92F7EAA.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AREDL271187FB40F44", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Soul Mekanik", "song_id": "SOPEGZN12AB0181B3D", "title": "Get Your Head Stuck On Your Neck", "duration": 45.66159, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBXU128F92FEF48.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARP6N5A1187B99D1A3", "artist_latitude": null, "artist_longitude": null, "artist_location": "Hamtramck, MI", "artist_name": "Mitch Ryder", "song_id": "SOXILUQ12A58A7C72A", "title": "Jenny Take a Ride", "duration": 207.43791, "year": 2004}
--------------------------------------------------------------------------------
/data/song_data/A/B/B/TRABBZN12903CD9297.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARGSAFR1269FB35070", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Blingtones", "song_id": "SOTCKKY12AB018A141", "title": "Sonnerie lalaleul\u00e9 hi houuu", "duration": 29.54404, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCAJ12903CDFCC2.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARULZCI1241B9C8611", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Luna Orbit Project", "song_id": "SOSWKAV12AB018FC91", "title": "Midnight Star", "duration": 335.51628, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCEC128F426456E.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR0IAWL1187B9A96D0", "artist_latitude": 8.4177, "artist_longitude": -80.11278, "artist_location": "Panama", "artist_name": "Danilo Perez", "song_id": "SONSKXP12A8C13A2C9", "title": "Native Soul", "duration": 197.19791, "year": 2003}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCEI128F424C983.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARJIE2Y1187B994AB7", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Line Renaud", "song_id": "SOUPIRU12A6D4FA1E1", "title": "Der Kleine Dompfaff", "duration": 152.92036, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCFL128F149BB0D.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARLTWXK1187FB5A3F8", "artist_latitude": 32.74863, "artist_longitude": -97.32925, "artist_location": "Fort Worth, TX", "artist_name": "King Curtis", "song_id": "SODREIN12A58A7F2E5", "title": "A Whiter Shade Of Pale (Live @ Fillmore West)", "duration": 326.00771, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCIX128F4265903.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARNF6401187FB57032", "artist_latitude": 40.79086, "artist_longitude": -73.96644, "artist_location": "New York, NY [Manhattan]", "artist_name": "Sophie B. Hawkins", "song_id": "SONWXQJ12A8C134D94", "title": "The Ballad Of Sleeping Beauty", "duration": 305.162, "year": 1994}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCKL128F423A778.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARPFHN61187FB575F6", "artist_latitude": 41.88415, "artist_longitude": -87.63241, "artist_location": "Chicago, IL", "artist_name": "Lupe Fiasco", "song_id": "SOWQTQZ12A58A7B63E", "title": "Streets On Fire (Explicit Album Version)", "duration": 279.97995, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCPZ128F4275C32.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR051KA1187B98B2FF", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Wilks", "song_id": "SOLYIBD12A8C135045", "title": "Music is what we love", "duration": 261.51138, "year": 0}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCRU128F423F449.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR8IEZO1187B99055E", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Marc Shaiman", "song_id": "SOINLJW12A8C13314C", "title": "City Slickers", "duration": 149.86404, "year": 2008}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCTK128F934B224.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AR558FS1187FB45658", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "40 Grit", "song_id": "SOGDBUF12A8C140FAA", "title": "Intro", "duration": 75.67628, "year": 2003}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCUQ128E0783E2B.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARVBRGZ1187FB4675A", "artist_latitude": null, "artist_longitude": null, "artist_location": "", "artist_name": "Gwen Stefani", "song_id": "SORRZGD12A6310DBC3", "title": "Harajuku Girls", "duration": 290.55955, "year": 2004}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCXB128F4286BD3.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "ARWB3G61187FB49404", "artist_latitude": null, "artist_longitude": null, "artist_location": "Hamilton, Ohio", "artist_name": "Steve Morse", "song_id": "SODAUVL12A8C13D184", "title": "Prognosis", "duration": 363.85914, "year": 2000}
--------------------------------------------------------------------------------
/data/song_data/A/B/C/TRABCYE128F934CE1D.json:
--------------------------------------------------------------------------------
1 | {"num_songs": 1, "artist_id": "AREVWGE1187B9B890A", "artist_latitude": -13.442, "artist_longitude": -41.9952, "artist_location": "Noci (BA)", "artist_name": "Bitter End", "song_id": "SOFCHDR12AB01866EF", "title": "Living Hell", "duration": 282.43546, "year": 0}
--------------------------------------------------------------------------------
/etl.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {
6 | "editable": true
7 | },
8 | "source": [
9 | "# ETL Processes\n",
10 | "Use this notebook to develop the ETL process for each of your tables before completing the `etl.py` file to load the whole datasets."
11 | ]
12 | },
13 | {
14 | "cell_type": "code",
15 | "execution_count": 1,
16 | "metadata": {
17 | "editable": true
18 | },
19 | "outputs": [],
20 | "source": [
21 | "import os\n",
22 | "import glob\n",
23 | "import psycopg2\n",
24 | "import pandas as pd\n",
25 | "from sql_queries import *"
26 | ]
27 | },
28 | {
29 | "cell_type": "code",
30 | "execution_count": 2,
31 | "metadata": {
32 | "editable": true
33 | },
34 | "outputs": [],
35 | "source": [
36 | "conn = psycopg2.connect(\"host=127.0.0.1 dbname=sparkifydb user=student password=student\")\n",
37 | "cur = conn.cursor()"
38 | ]
39 | },
40 | {
41 | "cell_type": "code",
42 | "execution_count": 3,
43 | "metadata": {
44 | "editable": true
45 | },
46 | "outputs": [],
47 | "source": [
48 | "def get_files(filepath):\n",
49 | " all_files = []\n",
50 | " for root, dirs, files in os.walk(filepath):\n",
51 | " files = glob.glob(os.path.join(root,'*.json'))\n",
52 | " for f in files :\n",
53 | " all_files.append(os.path.abspath(f))\n",
54 | " \n",
55 | " return all_files"
56 | ]
57 | },
58 | {
59 | "cell_type": "markdown",
60 | "metadata": {
61 | "editable": true
62 | },
63 | "source": [
64 | "# Process `song_data`\n",
65 | "In this first part, you'll perform ETL on the first dataset, `song_data`, to create the `songs` and `artists` dimensional tables.\n",
66 | "\n",
67 | "Let's perform ETL on a single song file and load a single record into each table to start.\n",
68 | "- Use the `get_files` function provided above to get a list of all song JSON files in `data/song_data`\n",
69 | "- Select the first song in this list\n",
70 | "- Read the song file and view the data"
71 | ]
72 | },
73 | {
74 | "cell_type": "code",
75 | "execution_count": 4,
76 | "metadata": {
77 | "editable": true
78 | },
79 | "outputs": [],
80 | "source": [
81 | "song_files = get_files(\"data/song_data\")"
82 | ]
83 | },
84 | {
85 | "cell_type": "code",
86 | "execution_count": 5,
87 | "metadata": {
88 | "editable": true
89 | },
90 | "outputs": [],
91 | "source": [
92 | "filepath = song_files[0]"
93 | ]
94 | },
95 | {
96 | "cell_type": "code",
97 | "execution_count": 6,
98 | "metadata": {
99 | "editable": true
100 | },
101 | "outputs": [
102 | {
103 | "data": {
104 | "text/html": [
105 | "
\n",
106 | "\n",
119 | "
\n",
120 | " \n",
121 | " \n",
122 | " | \n",
123 | " artist_id | \n",
124 | " artist_latitude | \n",
125 | " artist_location | \n",
126 | " artist_longitude | \n",
127 | " artist_name | \n",
128 | " duration | \n",
129 | " num_songs | \n",
130 | " song_id | \n",
131 | " title | \n",
132 | " year | \n",
133 | "
\n",
134 | " \n",
135 | " \n",
136 | " \n",
137 | " 0 | \n",
138 | " ARD7TVE1187B99BFB1 | \n",
139 | " NaN | \n",
140 | " California - LA | \n",
141 | " NaN | \n",
142 | " Casual | \n",
143 | " 218.93179 | \n",
144 | " 1 | \n",
145 | " SOMZWCG12A8C13C480 | \n",
146 | " I Didn't Mean To | \n",
147 | " 0 | \n",
148 | "
\n",
149 | " \n",
150 | "
\n",
151 | "
"
152 | ],
153 | "text/plain": [
154 | " artist_id artist_latitude artist_location artist_longitude \\\n",
155 | "0 ARD7TVE1187B99BFB1 NaN California - LA NaN \n",
156 | "\n",
157 | " artist_name duration num_songs song_id title \\\n",
158 | "0 Casual 218.93179 1 SOMZWCG12A8C13C480 I Didn't Mean To \n",
159 | "\n",
160 | " year \n",
161 | "0 0 "
162 | ]
163 | },
164 | "execution_count": 6,
165 | "metadata": {},
166 | "output_type": "execute_result"
167 | }
168 | ],
169 | "source": [
170 | "df = pd.read_json(filepath, dtype={'year': int}, lines=True)\n",
171 | "df.head()"
172 | ]
173 | },
174 | {
175 | "cell_type": "markdown",
176 | "metadata": {
177 | "editable": true
178 | },
179 | "source": [
180 | "## #1: `songs` Table\n",
181 | "#### Extract Data for Songs Table\n",
182 | "- Select columns for song ID, title, artist ID, year, and duration\n",
183 | "- Use `df.values` to select just the values from the dataframe\n",
184 | "- Index to select the first (only) record in the dataframe\n",
185 | "- Convert the array to a list and set it to `song_data`"
186 | ]
187 | },
188 | {
189 | "cell_type": "code",
190 | "execution_count": 7,
191 | "metadata": {
192 | "editable": true
193 | },
194 | "outputs": [
195 | {
196 | "data": {
197 | "text/plain": [
198 | "['SOMZWCG12A8C13C480', \"I Didn't Mean To\", 'ARD7TVE1187B99BFB1', 0, 218.93179]"
199 | ]
200 | },
201 | "execution_count": 7,
202 | "metadata": {},
203 | "output_type": "execute_result"
204 | }
205 | ],
206 | "source": [
207 | "song_data = df[['song_id', 'title', 'artist_id', 'year', 'duration']].values[0].tolist()\n",
208 | "song_data"
209 | ]
210 | },
211 | {
212 | "cell_type": "markdown",
213 | "metadata": {
214 | "editable": true
215 | },
216 | "source": [
217 | "#### Insert Record into Song Table\n",
218 | "Implement the `song_table_insert` query in `sql_queries.py` and run the cell below to insert a record for this song into the `songs` table. Remember to run `create_tables.py` before running the cell below to ensure you've created/resetted the `songs` table in the sparkify database."
219 | ]
220 | },
221 | {
222 | "cell_type": "code",
223 | "execution_count": 8,
224 | "metadata": {
225 | "editable": true
226 | },
227 | "outputs": [],
228 | "source": [
229 | "cur.execute(song_table_insert, song_data)\n",
230 | "conn.commit()"
231 | ]
232 | },
233 | {
234 | "cell_type": "markdown",
235 | "metadata": {
236 | "editable": true
237 | },
238 | "source": [
239 | "Run `test.ipynb` to see if you've successfully added a record to this table."
240 | ]
241 | },
242 | {
243 | "cell_type": "markdown",
244 | "metadata": {
245 | "editable": true
246 | },
247 | "source": [
248 | "## #2: `artists` Table\n",
249 | "#### Extract Data for Artists Table\n",
250 | "- Select columns for artist ID, name, location, latitude, and longitude\n",
251 | "- Use `df.values` to select just the values from the dataframe\n",
252 | "- Index to select the first (only) record in the dataframe\n",
253 | "- Convert the array to a list and set it to `artist_data`"
254 | ]
255 | },
256 | {
257 | "cell_type": "code",
258 | "execution_count": 9,
259 | "metadata": {
260 | "editable": true
261 | },
262 | "outputs": [
263 | {
264 | "data": {
265 | "text/plain": [
266 | "['ARD7TVE1187B99BFB1', 'Casual', 'California - LA', nan, nan]"
267 | ]
268 | },
269 | "execution_count": 9,
270 | "metadata": {},
271 | "output_type": "execute_result"
272 | }
273 | ],
274 | "source": [
275 | "artist_data = df[['artist_id', 'artist_name', 'artist_location', 'artist_latitude', 'artist_longitude']].values[0].tolist()\n",
276 | "artist_data"
277 | ]
278 | },
279 | {
280 | "cell_type": "markdown",
281 | "metadata": {
282 | "editable": true
283 | },
284 | "source": [
285 | "#### Insert Record into Artist Table\n",
286 | "Implement the `artist_table_insert` query in `sql_queries.py` and run the cell below to insert a record for this song's artist into the `artists` table. Remember to run `create_tables.py` before running the cell below to ensure you've created/resetted the `artists` table in the sparkify database."
287 | ]
288 | },
289 | {
290 | "cell_type": "code",
291 | "execution_count": 10,
292 | "metadata": {
293 | "editable": true
294 | },
295 | "outputs": [],
296 | "source": [
297 | "cur.execute(artist_table_insert, artist_data)\n",
298 | "conn.commit()"
299 | ]
300 | },
301 | {
302 | "cell_type": "markdown",
303 | "metadata": {
304 | "editable": true
305 | },
306 | "source": [
307 | "Run `test.ipynb` to see if you've successfully added a record to this table."
308 | ]
309 | },
310 | {
311 | "cell_type": "markdown",
312 | "metadata": {
313 | "editable": true
314 | },
315 | "source": [
316 | "# Process `log_data`\n",
317 | "In this part, you'll perform ETL on the second dataset, `log_data`, to create the `time` and `users` dimensional tables, as well as the `songplays` fact table.\n",
318 | "\n",
319 | "Let's perform ETL on a single log file and load a single record into each table.\n",
320 | "- Use the `get_files` function provided above to get a list of all log JSON files in `data/log_data`\n",
321 | "- Select the first log file in this list\n",
322 | "- Read the log file and view the data"
323 | ]
324 | },
325 | {
326 | "cell_type": "code",
327 | "execution_count": 11,
328 | "metadata": {
329 | "editable": true
330 | },
331 | "outputs": [],
332 | "source": [
333 | "log_files = get_files(\"data/log_data\")"
334 | ]
335 | },
336 | {
337 | "cell_type": "code",
338 | "execution_count": 12,
339 | "metadata": {
340 | "editable": true
341 | },
342 | "outputs": [],
343 | "source": [
344 | "filepath = log_files[0]"
345 | ]
346 | },
347 | {
348 | "cell_type": "code",
349 | "execution_count": 13,
350 | "metadata": {
351 | "editable": true
352 | },
353 | "outputs": [
354 | {
355 | "data": {
356 | "text/html": [
357 | "\n",
358 | "\n",
371 | "
\n",
372 | " \n",
373 | " \n",
374 | " | \n",
375 | " artist | \n",
376 | " auth | \n",
377 | " firstName | \n",
378 | " gender | \n",
379 | " itemInSession | \n",
380 | " lastName | \n",
381 | " length | \n",
382 | " level | \n",
383 | " location | \n",
384 | " method | \n",
385 | " page | \n",
386 | " registration | \n",
387 | " sessionId | \n",
388 | " song | \n",
389 | " status | \n",
390 | " ts | \n",
391 | " userAgent | \n",
392 | " userId | \n",
393 | "
\n",
394 | " \n",
395 | " \n",
396 | " \n",
397 | " 0 | \n",
398 | " Stephen Lynch | \n",
399 | " Logged In | \n",
400 | " Jayden | \n",
401 | " M | \n",
402 | " 0 | \n",
403 | " Bell | \n",
404 | " 182.85669 | \n",
405 | " free | \n",
406 | " Dallas-Fort Worth-Arlington, TX | \n",
407 | " PUT | \n",
408 | " NextSong | \n",
409 | " 1.540992e+12 | \n",
410 | " 829 | \n",
411 | " Jim Henson's Dead | \n",
412 | " 200 | \n",
413 | " 1543537327796 | \n",
414 | " Mozilla/5.0 (compatible; MSIE 10.0; Windows NT... | \n",
415 | " 91 | \n",
416 | "
\n",
417 | " \n",
418 | " 1 | \n",
419 | " Manowar | \n",
420 | " Logged In | \n",
421 | " Jacob | \n",
422 | " M | \n",
423 | " 0 | \n",
424 | " Klein | \n",
425 | " 247.56200 | \n",
426 | " paid | \n",
427 | " Tampa-St. Petersburg-Clearwater, FL | \n",
428 | " PUT | \n",
429 | " NextSong | \n",
430 | " 1.540558e+12 | \n",
431 | " 1049 | \n",
432 | " Shell Shock | \n",
433 | " 200 | \n",
434 | " 1543540121796 | \n",
435 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
436 | " 73 | \n",
437 | "
\n",
438 | " \n",
439 | " 2 | \n",
440 | " Morcheeba | \n",
441 | " Logged In | \n",
442 | " Jacob | \n",
443 | " M | \n",
444 | " 1 | \n",
445 | " Klein | \n",
446 | " 257.41016 | \n",
447 | " paid | \n",
448 | " Tampa-St. Petersburg-Clearwater, FL | \n",
449 | " PUT | \n",
450 | " NextSong | \n",
451 | " 1.540558e+12 | \n",
452 | " 1049 | \n",
453 | " Women Lose Weight (Feat: Slick Rick) | \n",
454 | " 200 | \n",
455 | " 1543540368796 | \n",
456 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
457 | " 73 | \n",
458 | "
\n",
459 | " \n",
460 | " 3 | \n",
461 | " Maroon 5 | \n",
462 | " Logged In | \n",
463 | " Jacob | \n",
464 | " M | \n",
465 | " 2 | \n",
466 | " Klein | \n",
467 | " 231.23546 | \n",
468 | " paid | \n",
469 | " Tampa-St. Petersburg-Clearwater, FL | \n",
470 | " PUT | \n",
471 | " NextSong | \n",
472 | " 1.540558e+12 | \n",
473 | " 1049 | \n",
474 | " Won't Go Home Without You | \n",
475 | " 200 | \n",
476 | " 1543540625796 | \n",
477 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
478 | " 73 | \n",
479 | "
\n",
480 | " \n",
481 | " 4 | \n",
482 | " Train | \n",
483 | " Logged In | \n",
484 | " Jacob | \n",
485 | " M | \n",
486 | " 3 | \n",
487 | " Klein | \n",
488 | " 216.76363 | \n",
489 | " paid | \n",
490 | " Tampa-St. Petersburg-Clearwater, FL | \n",
491 | " PUT | \n",
492 | " NextSong | \n",
493 | " 1.540558e+12 | \n",
494 | " 1049 | \n",
495 | " Hey_ Soul Sister | \n",
496 | " 200 | \n",
497 | " 1543540856796 | \n",
498 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
499 | " 73 | \n",
500 | "
\n",
501 | " \n",
502 | "
\n",
503 | "
"
504 | ],
505 | "text/plain": [
506 | " artist auth firstName gender itemInSession lastName \\\n",
507 | "0 Stephen Lynch Logged In Jayden M 0 Bell \n",
508 | "1 Manowar Logged In Jacob M 0 Klein \n",
509 | "2 Morcheeba Logged In Jacob M 1 Klein \n",
510 | "3 Maroon 5 Logged In Jacob M 2 Klein \n",
511 | "4 Train Logged In Jacob M 3 Klein \n",
512 | "\n",
513 | " length level location method page \\\n",
514 | "0 182.85669 free Dallas-Fort Worth-Arlington, TX PUT NextSong \n",
515 | "1 247.56200 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
516 | "2 257.41016 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
517 | "3 231.23546 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
518 | "4 216.76363 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
519 | "\n",
520 | " registration sessionId song status \\\n",
521 | "0 1.540992e+12 829 Jim Henson's Dead 200 \n",
522 | "1 1.540558e+12 1049 Shell Shock 200 \n",
523 | "2 1.540558e+12 1049 Women Lose Weight (Feat: Slick Rick) 200 \n",
524 | "3 1.540558e+12 1049 Won't Go Home Without You 200 \n",
525 | "4 1.540558e+12 1049 Hey_ Soul Sister 200 \n",
526 | "\n",
527 | " ts userAgent userId \n",
528 | "0 1543537327796 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT... 91 \n",
529 | "1 1543540121796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 \n",
530 | "2 1543540368796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 \n",
531 | "3 1543540625796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 \n",
532 | "4 1543540856796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 "
533 | ]
534 | },
535 | "execution_count": 13,
536 | "metadata": {},
537 | "output_type": "execute_result"
538 | }
539 | ],
540 | "source": [
541 | "df = pd.read_json(filepath, lines=True)\n",
542 | "df.head()"
543 | ]
544 | },
545 | {
546 | "cell_type": "markdown",
547 | "metadata": {
548 | "editable": true
549 | },
550 | "source": [
551 | "## #3: `time` Table\n",
552 | "#### Extract Data for Time Table\n",
553 | "- Filter records by `NextSong` action\n",
554 | "- Convert the `ts` timestamp column to datetime\n",
555 | " - Hint: the current timestamp is in milliseconds\n",
556 | "- Extract the timestamp, hour, day, week of year, month, year, and weekday from the `ts` column and set `time_data` to a list containing these values in order\n",
557 | " - Hint: use pandas' [`dt` attribute](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.dt.html) to access easily datetimelike properties.\n",
558 | "- Specify labels for these columns and set to `column_labels`\n",
559 | "- Create a dataframe, `time_df,` containing the time data for this file by combining `column_labels` and `time_data` into a dictionary and converting this into a dataframe"
560 | ]
561 | },
562 | {
563 | "cell_type": "code",
564 | "execution_count": 14,
565 | "metadata": {
566 | "editable": true
567 | },
568 | "outputs": [
569 | {
570 | "data": {
571 | "text/html": [
572 | "\n",
573 | "\n",
586 | "
\n",
587 | " \n",
588 | " \n",
589 | " | \n",
590 | " artist | \n",
591 | " auth | \n",
592 | " firstName | \n",
593 | " gender | \n",
594 | " itemInSession | \n",
595 | " lastName | \n",
596 | " length | \n",
597 | " level | \n",
598 | " location | \n",
599 | " method | \n",
600 | " page | \n",
601 | " registration | \n",
602 | " sessionId | \n",
603 | " song | \n",
604 | " status | \n",
605 | " ts | \n",
606 | " userAgent | \n",
607 | " userId | \n",
608 | "
\n",
609 | " \n",
610 | " \n",
611 | " \n",
612 | " 0 | \n",
613 | " Stephen Lynch | \n",
614 | " Logged In | \n",
615 | " Jayden | \n",
616 | " M | \n",
617 | " 0 | \n",
618 | " Bell | \n",
619 | " 182.85669 | \n",
620 | " free | \n",
621 | " Dallas-Fort Worth-Arlington, TX | \n",
622 | " PUT | \n",
623 | " NextSong | \n",
624 | " 1.540992e+12 | \n",
625 | " 829 | \n",
626 | " Jim Henson's Dead | \n",
627 | " 200 | \n",
628 | " 1543537327796 | \n",
629 | " Mozilla/5.0 (compatible; MSIE 10.0; Windows NT... | \n",
630 | " 91 | \n",
631 | "
\n",
632 | " \n",
633 | " 1 | \n",
634 | " Manowar | \n",
635 | " Logged In | \n",
636 | " Jacob | \n",
637 | " M | \n",
638 | " 0 | \n",
639 | " Klein | \n",
640 | " 247.56200 | \n",
641 | " paid | \n",
642 | " Tampa-St. Petersburg-Clearwater, FL | \n",
643 | " PUT | \n",
644 | " NextSong | \n",
645 | " 1.540558e+12 | \n",
646 | " 1049 | \n",
647 | " Shell Shock | \n",
648 | " 200 | \n",
649 | " 1543540121796 | \n",
650 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
651 | " 73 | \n",
652 | "
\n",
653 | " \n",
654 | " 2 | \n",
655 | " Morcheeba | \n",
656 | " Logged In | \n",
657 | " Jacob | \n",
658 | " M | \n",
659 | " 1 | \n",
660 | " Klein | \n",
661 | " 257.41016 | \n",
662 | " paid | \n",
663 | " Tampa-St. Petersburg-Clearwater, FL | \n",
664 | " PUT | \n",
665 | " NextSong | \n",
666 | " 1.540558e+12 | \n",
667 | " 1049 | \n",
668 | " Women Lose Weight (Feat: Slick Rick) | \n",
669 | " 200 | \n",
670 | " 1543540368796 | \n",
671 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
672 | " 73 | \n",
673 | "
\n",
674 | " \n",
675 | " 3 | \n",
676 | " Maroon 5 | \n",
677 | " Logged In | \n",
678 | " Jacob | \n",
679 | " M | \n",
680 | " 2 | \n",
681 | " Klein | \n",
682 | " 231.23546 | \n",
683 | " paid | \n",
684 | " Tampa-St. Petersburg-Clearwater, FL | \n",
685 | " PUT | \n",
686 | " NextSong | \n",
687 | " 1.540558e+12 | \n",
688 | " 1049 | \n",
689 | " Won't Go Home Without You | \n",
690 | " 200 | \n",
691 | " 1543540625796 | \n",
692 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
693 | " 73 | \n",
694 | "
\n",
695 | " \n",
696 | " 4 | \n",
697 | " Train | \n",
698 | " Logged In | \n",
699 | " Jacob | \n",
700 | " M | \n",
701 | " 3 | \n",
702 | " Klein | \n",
703 | " 216.76363 | \n",
704 | " paid | \n",
705 | " Tampa-St. Petersburg-Clearwater, FL | \n",
706 | " PUT | \n",
707 | " NextSong | \n",
708 | " 1.540558e+12 | \n",
709 | " 1049 | \n",
710 | " Hey_ Soul Sister | \n",
711 | " 200 | \n",
712 | " 1543540856796 | \n",
713 | " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... | \n",
714 | " 73 | \n",
715 | "
\n",
716 | " \n",
717 | "
\n",
718 | "
"
719 | ],
720 | "text/plain": [
721 | " artist auth firstName gender itemInSession lastName \\\n",
722 | "0 Stephen Lynch Logged In Jayden M 0 Bell \n",
723 | "1 Manowar Logged In Jacob M 0 Klein \n",
724 | "2 Morcheeba Logged In Jacob M 1 Klein \n",
725 | "3 Maroon 5 Logged In Jacob M 2 Klein \n",
726 | "4 Train Logged In Jacob M 3 Klein \n",
727 | "\n",
728 | " length level location method page \\\n",
729 | "0 182.85669 free Dallas-Fort Worth-Arlington, TX PUT NextSong \n",
730 | "1 247.56200 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
731 | "2 257.41016 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
732 | "3 231.23546 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
733 | "4 216.76363 paid Tampa-St. Petersburg-Clearwater, FL PUT NextSong \n",
734 | "\n",
735 | " registration sessionId song status \\\n",
736 | "0 1.540992e+12 829 Jim Henson's Dead 200 \n",
737 | "1 1.540558e+12 1049 Shell Shock 200 \n",
738 | "2 1.540558e+12 1049 Women Lose Weight (Feat: Slick Rick) 200 \n",
739 | "3 1.540558e+12 1049 Won't Go Home Without You 200 \n",
740 | "4 1.540558e+12 1049 Hey_ Soul Sister 200 \n",
741 | "\n",
742 | " ts userAgent userId \n",
743 | "0 1543537327796 Mozilla/5.0 (compatible; MSIE 10.0; Windows NT... 91 \n",
744 | "1 1543540121796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 \n",
745 | "2 1543540368796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 \n",
746 | "3 1543540625796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 \n",
747 | "4 1543540856796 \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4... 73 "
748 | ]
749 | },
750 | "execution_count": 14,
751 | "metadata": {},
752 | "output_type": "execute_result"
753 | }
754 | ],
755 | "source": [
756 | "df = df[df['page'] == 'NextSong'].copy()\n",
757 | "df.head()"
758 | ]
759 | },
760 | {
761 | "cell_type": "code",
762 | "execution_count": 15,
763 | "metadata": {
764 | "editable": true
765 | },
766 | "outputs": [
767 | {
768 | "data": {
769 | "text/plain": [
770 | "0 2018-11-30 00:22:07.796\n",
771 | "1 2018-11-30 01:08:41.796\n",
772 | "2 2018-11-30 01:12:48.796\n",
773 | "3 2018-11-30 01:17:05.796\n",
774 | "4 2018-11-30 01:20:56.796\n",
775 | "Name: ts, dtype: datetime64[ns]"
776 | ]
777 | },
778 | "execution_count": 15,
779 | "metadata": {},
780 | "output_type": "execute_result"
781 | }
782 | ],
783 | "source": [
784 | "t = pd.to_datetime(df[\"ts\"], unit='ms')\n",
785 | "t.head()"
786 | ]
787 | },
788 | {
789 | "cell_type": "code",
790 | "execution_count": 16,
791 | "metadata": {
792 | "editable": true
793 | },
794 | "outputs": [],
795 | "source": [
796 | "time_data = (t, t.dt.hour, t.dt.day, t.dt.week, t.dt.month, t.dt.year, t.dt.weekday)\n",
797 | "column_labels = ('start_time', 'hour', 'day', 'week', 'month', 'year', 'weekday')"
798 | ]
799 | },
800 | {
801 | "cell_type": "code",
802 | "execution_count": 17,
803 | "metadata": {
804 | "editable": true
805 | },
806 | "outputs": [
807 | {
808 | "data": {
809 | "text/html": [
810 | "\n",
811 | "\n",
824 | "
\n",
825 | " \n",
826 | " \n",
827 | " | \n",
828 | " start_time | \n",
829 | " hour | \n",
830 | " day | \n",
831 | " week | \n",
832 | " month | \n",
833 | " year | \n",
834 | " weekday | \n",
835 | "
\n",
836 | " \n",
837 | " \n",
838 | " \n",
839 | " 0 | \n",
840 | " 2018-11-30 00:22:07.796 | \n",
841 | " 0 | \n",
842 | " 30 | \n",
843 | " 48 | \n",
844 | " 11 | \n",
845 | " 2018 | \n",
846 | " 4 | \n",
847 | "
\n",
848 | " \n",
849 | " 1 | \n",
850 | " 2018-11-30 01:08:41.796 | \n",
851 | " 1 | \n",
852 | " 30 | \n",
853 | " 48 | \n",
854 | " 11 | \n",
855 | " 2018 | \n",
856 | " 4 | \n",
857 | "
\n",
858 | " \n",
859 | " 2 | \n",
860 | " 2018-11-30 01:12:48.796 | \n",
861 | " 1 | \n",
862 | " 30 | \n",
863 | " 48 | \n",
864 | " 11 | \n",
865 | " 2018 | \n",
866 | " 4 | \n",
867 | "
\n",
868 | " \n",
869 | " 3 | \n",
870 | " 2018-11-30 01:17:05.796 | \n",
871 | " 1 | \n",
872 | " 30 | \n",
873 | " 48 | \n",
874 | " 11 | \n",
875 | " 2018 | \n",
876 | " 4 | \n",
877 | "
\n",
878 | " \n",
879 | " 4 | \n",
880 | " 2018-11-30 01:20:56.796 | \n",
881 | " 1 | \n",
882 | " 30 | \n",
883 | " 48 | \n",
884 | " 11 | \n",
885 | " 2018 | \n",
886 | " 4 | \n",
887 | "
\n",
888 | " \n",
889 | "
\n",
890 | "
"
891 | ],
892 | "text/plain": [
893 | " start_time hour day week month year weekday\n",
894 | "0 2018-11-30 00:22:07.796 0 30 48 11 2018 4\n",
895 | "1 2018-11-30 01:08:41.796 1 30 48 11 2018 4\n",
896 | "2 2018-11-30 01:12:48.796 1 30 48 11 2018 4\n",
897 | "3 2018-11-30 01:17:05.796 1 30 48 11 2018 4\n",
898 | "4 2018-11-30 01:20:56.796 1 30 48 11 2018 4"
899 | ]
900 | },
901 | "execution_count": 17,
902 | "metadata": {},
903 | "output_type": "execute_result"
904 | }
905 | ],
906 | "source": [
907 | "time_df = pd.DataFrame.from_dict(dict(zip(column_labels, time_data)))\n",
908 | "time_df.head()"
909 | ]
910 | },
911 | {
912 | "cell_type": "markdown",
913 | "metadata": {
914 | "editable": true
915 | },
916 | "source": [
917 | "#### Insert Records into Time Table\n",
918 | "Implement the `time_table_insert` query in `sql_queries.py` and run the cell below to insert records for the timestamps in this log file into the `time` table. Remember to run `create_tables.py` before running the cell below to ensure you've created/resetted the `time` table in the sparkify database."
919 | ]
920 | },
921 | {
922 | "cell_type": "code",
923 | "execution_count": 18,
924 | "metadata": {
925 | "editable": true
926 | },
927 | "outputs": [],
928 | "source": [
929 | "for i, row in time_df.iterrows():\n",
930 | " cur.execute(time_table_insert, list(row))\n",
931 | " conn.commit()"
932 | ]
933 | },
934 | {
935 | "cell_type": "markdown",
936 | "metadata": {
937 | "editable": true
938 | },
939 | "source": [
940 | "Run `test.ipynb` to see if you've successfully added records to this table."
941 | ]
942 | },
943 | {
944 | "cell_type": "markdown",
945 | "metadata": {
946 | "editable": true
947 | },
948 | "source": [
949 | "## #4: `users` Table\n",
950 | "#### Extract Data for Users Table\n",
951 | "- Select columns for user ID, first name, last name, gender and level and set to `user_df`"
952 | ]
953 | },
954 | {
955 | "cell_type": "code",
956 | "execution_count": 19,
957 | "metadata": {
958 | "editable": true
959 | },
960 | "outputs": [],
961 | "source": [
962 | "user_df = df[[\"userId\", \"firstName\", \"lastName\", \"gender\", \"level\"]]"
963 | ]
964 | },
965 | {
966 | "cell_type": "markdown",
967 | "metadata": {
968 | "editable": true
969 | },
970 | "source": [
971 | "#### Insert Records into Users Table\n",
972 | "Implement the `user_table_insert` query in `sql_queries.py` and run the cell below to insert records for the users in this log file into the `users` table. Remember to run `create_tables.py` before running the cell below to ensure you've created/resetted the `users` table in the sparkify database."
973 | ]
974 | },
975 | {
976 | "cell_type": "code",
977 | "execution_count": 20,
978 | "metadata": {
979 | "editable": true
980 | },
981 | "outputs": [],
982 | "source": [
983 | "for i, row in user_df.iterrows():\n",
984 | " cur.execute(user_table_insert, row)\n",
985 | " conn.commit()"
986 | ]
987 | },
988 | {
989 | "cell_type": "markdown",
990 | "metadata": {
991 | "editable": true
992 | },
993 | "source": [
994 | "Run `test.ipynb` to see if you've successfully added records to this table."
995 | ]
996 | },
997 | {
998 | "cell_type": "markdown",
999 | "metadata": {
1000 | "editable": true
1001 | },
1002 | "source": [
1003 | "## #5: `songplays` Table\n",
1004 | "#### Extract Data and Songplays Table\n",
1005 | "This one is a little more complicated since information from the songs table, artists table, and original log file are all needed for the `songplays` table. Since the log file does not specify an ID for either the song or the artist, you'll need to get the song ID and artist ID by querying the songs and artists tables to find matches based on song title, artist name, and song duration time.\n",
1006 | "- Implement the `song_select` query in `sql_queries.py` to find the song ID and artist ID based on the title, artist name, and duration of a song.\n",
1007 | "- Select the timestamp, user ID, level, song ID, artist ID, session ID, location, and user agent and set to `songplay_data`\n",
1008 | "\n",
1009 | "#### Insert Records into Songplays Table\n",
1010 | "- Implement the `songplay_table_insert` query and run the cell below to insert records for the songplay actions in this log file into the `songplays` table. Remember to run `create_tables.py` before running the cell below to ensure you've created/resetted the `songplays` table in the sparkify database."
1011 | ]
1012 | },
1013 | {
1014 | "cell_type": "code",
1015 | "execution_count": 21,
1016 | "metadata": {
1017 | "editable": true
1018 | },
1019 | "outputs": [],
1020 | "source": [
1021 | "df['ts'] = pd.to_datetime(df['ts'], unit='ms')\n",
1022 | "for index, row in df.iterrows():\n",
1023 | "\n",
1024 | " # get songid and artistid from song and artist tables\n",
1025 | " cur.execute(song_select, (row.song, row.artist, row.length))\n",
1026 | " results = cur.fetchone()\n",
1027 | "\n",
1028 | " if results:\n",
1029 | " songid, artistid = results\n",
1030 | " else:\n",
1031 | " songid, artistid = None, None\n",
1032 | " # insert songplay record\n",
1033 | " songplay_data = [index+1, row.ts, row.userId, row.level, songid, artistid, row.sessionId, row.location, row.userAgent]\n",
1034 | " cur.execute(songplay_table_insert, songplay_data)\n",
1035 | " conn.commit()"
1036 | ]
1037 | },
1038 | {
1039 | "cell_type": "markdown",
1040 | "metadata": {
1041 | "editable": true
1042 | },
1043 | "source": [
1044 | "Run `test.ipynb` to see if you've successfully added records to this table."
1045 | ]
1046 | },
1047 | {
1048 | "cell_type": "markdown",
1049 | "metadata": {
1050 | "editable": true
1051 | },
1052 | "source": [
1053 | "# Close Connection to Sparkify Database"
1054 | ]
1055 | },
1056 | {
1057 | "cell_type": "code",
1058 | "execution_count": 22,
1059 | "metadata": {
1060 | "editable": true
1061 | },
1062 | "outputs": [],
1063 | "source": [
1064 | "conn.close()"
1065 | ]
1066 | },
1067 | {
1068 | "cell_type": "markdown",
1069 | "metadata": {
1070 | "editable": true
1071 | },
1072 | "source": [
1073 | "# Implement `etl.py`\n",
1074 | "Use what you've completed in this notebook to implement `etl.py`."
1075 | ]
1076 | },
1077 | {
1078 | "cell_type": "code",
1079 | "execution_count": null,
1080 | "metadata": {
1081 | "editable": true
1082 | },
1083 | "outputs": [],
1084 | "source": []
1085 | }
1086 | ],
1087 | "metadata": {
1088 | "kernelspec": {
1089 | "display_name": "Python 3",
1090 | "language": "python",
1091 | "name": "python3"
1092 | },
1093 | "language_info": {
1094 | "codemirror_mode": {
1095 | "name": "ipython",
1096 | "version": 3
1097 | },
1098 | "file_extension": ".py",
1099 | "mimetype": "text/x-python",
1100 | "name": "python",
1101 | "nbconvert_exporter": "python",
1102 | "pygments_lexer": "ipython3",
1103 | "version": "3.6.3"
1104 | }
1105 | },
1106 | "nbformat": 4,
1107 | "nbformat_minor": 4
1108 | }
1109 |
--------------------------------------------------------------------------------
/etl.py:
--------------------------------------------------------------------------------
1 | import os
2 | import glob
3 | import psycopg2
4 | import pandas as pd
5 | from sql_queries import *
6 |
7 |
8 | def process_song_file(cur, filepath):
9 | """Extract data from raw song JSON file and INSERT to 'songs' and 'artists' tables.
10 |
11 | Parameters
12 | ----------
13 | cur : cursor
14 | cursor of psycopg2 database connection
15 | filepath : file
16 | song data file
17 | """
18 | # open song file
19 | df = pd.read_json(filepath, dtype={'year': int}, lines=True)
20 |
21 | # insert song record
22 | song_data = df[['song_id', 'title', 'artist_id', 'year', 'duration']].values[0].tolist()
23 | cur.execute(song_table_insert, song_data)
24 |
25 | # insert artist record
26 | artist_data = df[['artist_id', 'artist_name', 'artist_location', 'artist_latitude', 'artist_longitude']].values[0].tolist()
27 | cur.execute(artist_table_insert, artist_data)
28 |
29 |
30 | def process_log_file(cur, filepath):
31 | """Extract data from raw log JSON file and INSERT to 'time', 'users' and 'songplays' tables.
32 |
33 | Parameters
34 | ----------
35 | cur : cursor
36 | cursor of psycopg2 database connection
37 | filepath : file
38 | log data file
39 | """
40 | # open log file
41 | df = pd.read_json(filepath, lines=True)
42 |
43 | # filter by NextSong action
44 | df = df[df['page'] == 'NextSong'].copy()
45 |
46 | # convert timestamp column to datetime
47 | t = pd.to_datetime(df["ts"], unit='ms')
48 |
49 | # insert time data records
50 | time_data = (t, t.dt.hour, t.dt.day, t.dt.week, t.dt.month, t.dt.year, t.dt.weekday)
51 | column_labels = ('start_time', 'hour', 'day', 'week', 'month', 'year', 'weekday')
52 | time_df = pd.DataFrame.from_dict(dict(zip(column_labels, time_data)))
53 |
54 | for i, row in time_df.iterrows():
55 | cur.execute(time_table_insert, list(row))
56 |
57 | # load user table
58 | user_df = df[["userId", "firstName", "lastName", "gender", "level"]]
59 |
60 | # insert user records
61 | for i, row in user_df.iterrows():
62 | cur.execute(user_table_insert, row)
63 |
64 | # convert dataframe timestamp column to datetime
65 | df["ts"] = pd.to_datetime(df["ts"], unit='ms')
66 |
67 | # insert songplay records
68 | for index, row in df.iterrows():
69 |
70 | # get songid and artistid from song and artist tables
71 | cur.execute(song_select, (row.song, row.artist, row.length))
72 | results = cur.fetchone()
73 |
74 | if results:
75 | songid, artistid = results
76 | else:
77 | songid, artistid = None, None
78 |
79 | # insert songplay record
80 | songplay_data = [index+1, row.ts, row.userId, row.level, songid, artistid, row.sessionId, row.location, row.userAgent]
81 | cur.execute(songplay_table_insert, songplay_data)
82 |
83 |
84 | def process_data(cur, conn, filepath, func):
85 | """Load song_data and log_data files and execute respective function with each file.
86 |
87 | Parameters
88 | ----------
89 | cur : cursor
90 | cursor of psycopg2 database connection.
91 | conn : connection
92 | connection of psycopg2
93 | filepath : string
94 | directory of files
95 | func : def
96 | function for processing of each file
97 | """
98 | # get all files matching extension from directory
99 | all_files = []
100 | for root, dirs, files in os.walk(filepath):
101 | files = glob.glob(os.path.join(root,'*.json'))
102 | for f in files :
103 | all_files.append(os.path.abspath(f))
104 |
105 | # get total number of files found
106 | num_files = len(all_files)
107 | print('{} files found in {}'.format(num_files, filepath))
108 |
109 | # iterate over files and process
110 | for i, datafile in enumerate(all_files, 1):
111 | func(cur, datafile)
112 | conn.commit()
113 | print('{}/{} files processed.'.format(i, num_files))
114 |
115 |
116 | def main():
117 | conn = psycopg2.connect("host=127.0.0.1 dbname=sparkifydb user=student password=student")
118 | cur = conn.cursor()
119 |
120 | process_data(cur, conn, filepath='data/song_data', func=process_song_file)
121 | process_data(cur, conn, filepath='data/log_data', func=process_log_file)
122 |
123 | conn.close()
124 |
125 |
126 | if __name__ == "__main__":
127 | main()
--------------------------------------------------------------------------------
/sql_queries.py:
--------------------------------------------------------------------------------
1 | # DROP TABLES
2 |
3 | songplay_table_drop = "DROP TABLE IF EXISTS songplays"
4 | user_table_drop = "DROP TABLE IF EXISTS users"
5 | song_table_drop = "DROP TABLE IF EXISTS songs"
6 | artist_table_drop = "DROP TABLE IF EXISTS artists"
7 | time_table_drop = "DROP TABLE IF EXISTS time"
8 |
9 | # CREATE TABLES
10 |
11 | songplay_table_create = ("""
12 | CREATE TABLE IF NOT EXISTS songplays (
13 | songplay_id int PRIMARY KEY,
14 | start_time timestamp NOT NULL,
15 | user_id int NOT NULL,
16 | level varchar,
17 | song_id varchar,
18 | artist_id varchar,
19 | session_id int NOT NULL,
20 | location varchar,
21 | user_agent varchar
22 | );
23 | """)
24 |
25 | user_table_create = ("""
26 | CREATE TABLE IF NOT EXISTS users (
27 | user_id int PRIMARY KEY,
28 | first_name varchar,
29 | last_name varchar,
30 | gender varchar,
31 | level varchar
32 | );
33 | """)
34 |
35 | song_table_create = ("""
36 | CREATE TABLE IF NOT EXISTS songs (
37 | song_id varchar PRIMARY KEY,
38 | title varchar,
39 | artist_id varchar NOT NULL,
40 | year int,
41 | duration numeric
42 | );
43 | """)
44 |
45 | artist_table_create = ("""
46 | CREATE TABLE IF NOT EXISTS artists (
47 | artist_id varchar PRIMARY KEY,
48 | name varchar,
49 | location varchar,
50 | latitude numeric,
51 | longitude numeric
52 | );
53 | """)
54 |
55 | time_table_create = ("""
56 | CREATE TABLE IF NOT EXISTS time (
57 | start_time timestamp PRIMARY KEY,
58 | hour int,
59 | day int,
60 | week int,
61 | month int,
62 | year int,
63 | weekday int
64 | );
65 | """)
66 |
67 | # INSERT RECORDS
68 |
69 | songplay_table_insert = ("""
70 | INSERT INTO songplays (songplay_id, start_time, user_id, level, song_id, artist_id, session_id, location, user_agent)
71 | VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
72 | ON CONFLICT (songplay_id)
73 | DO NOTHING
74 | """)
75 |
76 | user_table_insert = ("""
77 | INSERT INTO users (user_id, first_name, last_name, gender, level)
78 | VALUES (%s, %s, %s, %s, %s)
79 | ON CONFLICT (user_id)
80 | DO UPDATE
81 | SET level = EXCLUDED.level;
82 | """)
83 |
84 | song_table_insert = ("""
85 | INSERT INTO songs (song_id, title, artist_id, year, duration)
86 | VALUES (%s, %s, %s, %s, %s)
87 | ON CONFLICT (song_id)
88 | DO NOTHING
89 | """)
90 |
91 | artist_table_insert = ("""
92 | INSERT INTO artists (artist_id, name, location, latitude, longitude)
93 | VALUES (%s, %s, %s, %s, %s)
94 | ON CONFLICT (artist_id)
95 | DO NOTHING
96 | """)
97 |
98 |
99 | time_table_insert = ("""
100 | INSERT INTO time (start_time, hour, day, week, month, year, weekday)
101 | VALUES (%s, %s, %s, %s, %s, %s, %s)
102 | ON CONFLICT (start_time)
103 | DO NOTHING
104 | """)
105 |
106 | # FIND SONGS
107 |
108 | song_select = ("""
109 | SELECT song_id, songs.artist_id FROM songs
110 | JOIN artists ON artists.artist_id = songs.artist_id
111 | WHERE title = %s
112 | AND name = %s
113 | AND duration = %s;
114 | """)
115 |
116 | # QUERY LISTS
117 |
118 | create_table_queries = [songplay_table_create, user_table_create, song_table_create, artist_table_create, time_table_create]
119 | drop_table_queries = [songplay_table_drop, user_table_drop, song_table_drop, artist_table_drop, time_table_drop]
--------------------------------------------------------------------------------
/test.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {
7 | "editable": true
8 | },
9 | "outputs": [],
10 | "source": [
11 | "%load_ext sql"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {
18 | "editable": true
19 | },
20 | "outputs": [
21 | {
22 | "data": {
23 | "text/plain": [
24 | "'Connected: student@sparkifydb'"
25 | ]
26 | },
27 | "execution_count": 2,
28 | "metadata": {},
29 | "output_type": "execute_result"
30 | }
31 | ],
32 | "source": [
33 | "%sql postgresql://student:student@127.0.0.1/sparkifydb"
34 | ]
35 | },
36 | {
37 | "cell_type": "code",
38 | "execution_count": 3,
39 | "metadata": {
40 | "editable": true
41 | },
42 | "outputs": [
43 | {
44 | "name": "stdout",
45 | "output_type": "stream",
46 | "text": [
47 | " * postgresql://student:***@127.0.0.1/sparkifydb\n",
48 | "5 rows affected.\n"
49 | ]
50 | },
51 | {
52 | "data": {
53 | "text/html": [
54 | "\n",
55 | " \n",
56 | " songplay_id | \n",
57 | " start_time | \n",
58 | " user_id | \n",
59 | " level | \n",
60 | " song_id | \n",
61 | " artist_id | \n",
62 | " session_id | \n",
63 | " location | \n",
64 | " user_agent | \n",
65 | "
\n",
66 | " \n",
67 | " 1 | \n",
68 | " 2018-11-30 00:22:07.796000 | \n",
69 | " 91 | \n",
70 | " free | \n",
71 | " None | \n",
72 | " None | \n",
73 | " 829 | \n",
74 | " Dallas-Fort Worth-Arlington, TX | \n",
75 | " Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) | \n",
76 | "
\n",
77 | " \n",
78 | " 2 | \n",
79 | " 2018-11-30 01:08:41.796000 | \n",
80 | " 73 | \n",
81 | " paid | \n",
82 | " None | \n",
83 | " None | \n",
84 | " 1049 | \n",
85 | " Tampa-St. Petersburg-Clearwater, FL | \n",
86 | " "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2" | \n",
87 | "
\n",
88 | " \n",
89 | " 3 | \n",
90 | " 2018-11-30 01:12:48.796000 | \n",
91 | " 73 | \n",
92 | " paid | \n",
93 | " None | \n",
94 | " None | \n",
95 | " 1049 | \n",
96 | " Tampa-St. Petersburg-Clearwater, FL | \n",
97 | " "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2" | \n",
98 | "
\n",
99 | " \n",
100 | " 4 | \n",
101 | " 2018-11-30 01:17:05.796000 | \n",
102 | " 73 | \n",
103 | " paid | \n",
104 | " None | \n",
105 | " None | \n",
106 | " 1049 | \n",
107 | " Tampa-St. Petersburg-Clearwater, FL | \n",
108 | " "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2" | \n",
109 | "
\n",
110 | " \n",
111 | " 5 | \n",
112 | " 2018-11-30 01:20:56.796000 | \n",
113 | " 73 | \n",
114 | " paid | \n",
115 | " None | \n",
116 | " None | \n",
117 | " 1049 | \n",
118 | " Tampa-St. Petersburg-Clearwater, FL | \n",
119 | " "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2" | \n",
120 | "
\n",
121 | "
"
122 | ],
123 | "text/plain": [
124 | "[(1, datetime.datetime(2018, 11, 30, 0, 22, 7, 796000), 91, 'free', None, None, 829, 'Dallas-Fort Worth-Arlington, TX', 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)'),\n",
125 | " (2, datetime.datetime(2018, 11, 30, 1, 8, 41, 796000), 73, 'paid', None, None, 1049, 'Tampa-St. Petersburg-Clearwater, FL', '\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2\"'),\n",
126 | " (3, datetime.datetime(2018, 11, 30, 1, 12, 48, 796000), 73, 'paid', None, None, 1049, 'Tampa-St. Petersburg-Clearwater, FL', '\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2\"'),\n",
127 | " (4, datetime.datetime(2018, 11, 30, 1, 17, 5, 796000), 73, 'paid', None, None, 1049, 'Tampa-St. Petersburg-Clearwater, FL', '\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2\"'),\n",
128 | " (5, datetime.datetime(2018, 11, 30, 1, 20, 56, 796000), 73, 'paid', None, None, 1049, 'Tampa-St. Petersburg-Clearwater, FL', '\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2\"')]"
129 | ]
130 | },
131 | "execution_count": 3,
132 | "metadata": {},
133 | "output_type": "execute_result"
134 | }
135 | ],
136 | "source": [
137 | "%sql SELECT * FROM songplays LIMIT 5;"
138 | ]
139 | },
140 | {
141 | "cell_type": "code",
142 | "execution_count": 4,
143 | "metadata": {
144 | "editable": true
145 | },
146 | "outputs": [
147 | {
148 | "name": "stdout",
149 | "output_type": "stream",
150 | "text": [
151 | " * postgresql://student:***@127.0.0.1/sparkifydb\n",
152 | "5 rows affected.\n"
153 | ]
154 | },
155 | {
156 | "data": {
157 | "text/html": [
158 | "\n",
159 | " \n",
160 | " user_id | \n",
161 | " first_name | \n",
162 | " last_name | \n",
163 | " gender | \n",
164 | " level | \n",
165 | "
\n",
166 | " \n",
167 | " 92 | \n",
168 | " Ryann | \n",
169 | " Smith | \n",
170 | " F | \n",
171 | " free | \n",
172 | "
\n",
173 | " \n",
174 | " 78 | \n",
175 | " Chloe | \n",
176 | " Roth | \n",
177 | " F | \n",
178 | " free | \n",
179 | "
\n",
180 | " \n",
181 | " 73 | \n",
182 | " Jacob | \n",
183 | " Klein | \n",
184 | " M | \n",
185 | " paid | \n",
186 | "
\n",
187 | " \n",
188 | " 12 | \n",
189 | " Austin | \n",
190 | " Rosales | \n",
191 | " M | \n",
192 | " free | \n",
193 | "
\n",
194 | " \n",
195 | " 86 | \n",
196 | " Aiden | \n",
197 | " Hess | \n",
198 | " M | \n",
199 | " free | \n",
200 | "
\n",
201 | "
"
202 | ],
203 | "text/plain": [
204 | "[(92, 'Ryann', 'Smith', 'F', 'free'),\n",
205 | " (78, 'Chloe', 'Roth', 'F', 'free'),\n",
206 | " (73, 'Jacob', 'Klein', 'M', 'paid'),\n",
207 | " (12, 'Austin', 'Rosales', 'M', 'free'),\n",
208 | " (86, 'Aiden', 'Hess', 'M', 'free')]"
209 | ]
210 | },
211 | "execution_count": 4,
212 | "metadata": {},
213 | "output_type": "execute_result"
214 | }
215 | ],
216 | "source": [
217 | "%sql SELECT * FROM users LIMIT 5;"
218 | ]
219 | },
220 | {
221 | "cell_type": "code",
222 | "execution_count": 5,
223 | "metadata": {
224 | "editable": true
225 | },
226 | "outputs": [
227 | {
228 | "name": "stdout",
229 | "output_type": "stream",
230 | "text": [
231 | " * postgresql://student:***@127.0.0.1/sparkifydb\n",
232 | "1 rows affected.\n"
233 | ]
234 | },
235 | {
236 | "data": {
237 | "text/html": [
238 | "\n",
239 | " \n",
240 | " song_id | \n",
241 | " title | \n",
242 | " artist_id | \n",
243 | " year | \n",
244 | " duration | \n",
245 | "
\n",
246 | " \n",
247 | " SOMZWCG12A8C13C480 | \n",
248 | " I Didn't Mean To | \n",
249 | " ARD7TVE1187B99BFB1 | \n",
250 | " 0 | \n",
251 | " 218.93179 | \n",
252 | "
\n",
253 | "
"
254 | ],
255 | "text/plain": [
256 | "[('SOMZWCG12A8C13C480', \"I Didn't Mean To\", 'ARD7TVE1187B99BFB1', 0, Decimal('218.93179'))]"
257 | ]
258 | },
259 | "execution_count": 5,
260 | "metadata": {},
261 | "output_type": "execute_result"
262 | }
263 | ],
264 | "source": [
265 | "%sql SELECT * FROM songs LIMIT 5;"
266 | ]
267 | },
268 | {
269 | "cell_type": "code",
270 | "execution_count": 6,
271 | "metadata": {
272 | "editable": true
273 | },
274 | "outputs": [
275 | {
276 | "name": "stdout",
277 | "output_type": "stream",
278 | "text": [
279 | " * postgresql://student:***@127.0.0.1/sparkifydb\n",
280 | "1 rows affected.\n"
281 | ]
282 | },
283 | {
284 | "data": {
285 | "text/html": [
286 | "\n",
287 | " \n",
288 | " artist_id | \n",
289 | " name | \n",
290 | " location | \n",
291 | " latitude | \n",
292 | " longitude | \n",
293 | "
\n",
294 | " \n",
295 | " ARD7TVE1187B99BFB1 | \n",
296 | " Casual | \n",
297 | " California - LA | \n",
298 | " NaN | \n",
299 | " NaN | \n",
300 | "
\n",
301 | "
"
302 | ],
303 | "text/plain": [
304 | "[('ARD7TVE1187B99BFB1', 'Casual', 'California - LA', Decimal('NaN'), Decimal('NaN'))]"
305 | ]
306 | },
307 | "execution_count": 6,
308 | "metadata": {},
309 | "output_type": "execute_result"
310 | }
311 | ],
312 | "source": [
313 | "%sql SELECT * FROM artists LIMIT 5;"
314 | ]
315 | },
316 | {
317 | "cell_type": "code",
318 | "execution_count": 7,
319 | "metadata": {
320 | "editable": true
321 | },
322 | "outputs": [
323 | {
324 | "name": "stdout",
325 | "output_type": "stream",
326 | "text": [
327 | " * postgresql://student:***@127.0.0.1/sparkifydb\n",
328 | "5 rows affected.\n"
329 | ]
330 | },
331 | {
332 | "data": {
333 | "text/html": [
334 | "\n",
335 | " \n",
336 | " start_time | \n",
337 | " hour | \n",
338 | " day | \n",
339 | " week | \n",
340 | " month | \n",
341 | " year | \n",
342 | " weekday | \n",
343 | "
\n",
344 | " \n",
345 | " 2018-11-30 00:22:07.796000 | \n",
346 | " 0 | \n",
347 | " 30 | \n",
348 | " 48 | \n",
349 | " 11 | \n",
350 | " 2018 | \n",
351 | " 4 | \n",
352 | "
\n",
353 | " \n",
354 | " 2018-11-30 01:08:41.796000 | \n",
355 | " 1 | \n",
356 | " 30 | \n",
357 | " 48 | \n",
358 | " 11 | \n",
359 | " 2018 | \n",
360 | " 4 | \n",
361 | "
\n",
362 | " \n",
363 | " 2018-11-30 01:12:48.796000 | \n",
364 | " 1 | \n",
365 | " 30 | \n",
366 | " 48 | \n",
367 | " 11 | \n",
368 | " 2018 | \n",
369 | " 4 | \n",
370 | "
\n",
371 | " \n",
372 | " 2018-11-30 01:17:05.796000 | \n",
373 | " 1 | \n",
374 | " 30 | \n",
375 | " 48 | \n",
376 | " 11 | \n",
377 | " 2018 | \n",
378 | " 4 | \n",
379 | "
\n",
380 | " \n",
381 | " 2018-11-30 01:20:56.796000 | \n",
382 | " 1 | \n",
383 | " 30 | \n",
384 | " 48 | \n",
385 | " 11 | \n",
386 | " 2018 | \n",
387 | " 4 | \n",
388 | "
\n",
389 | "
"
390 | ],
391 | "text/plain": [
392 | "[(datetime.datetime(2018, 11, 30, 0, 22, 7, 796000), 0, 30, 48, 11, 2018, 4),\n",
393 | " (datetime.datetime(2018, 11, 30, 1, 8, 41, 796000), 1, 30, 48, 11, 2018, 4),\n",
394 | " (datetime.datetime(2018, 11, 30, 1, 12, 48, 796000), 1, 30, 48, 11, 2018, 4),\n",
395 | " (datetime.datetime(2018, 11, 30, 1, 17, 5, 796000), 1, 30, 48, 11, 2018, 4),\n",
396 | " (datetime.datetime(2018, 11, 30, 1, 20, 56, 796000), 1, 30, 48, 11, 2018, 4)]"
397 | ]
398 | },
399 | "execution_count": 7,
400 | "metadata": {},
401 | "output_type": "execute_result"
402 | }
403 | ],
404 | "source": [
405 | "%sql SELECT * FROM time LIMIT 5;"
406 | ]
407 | },
408 | {
409 | "cell_type": "markdown",
410 | "metadata": {
411 | "editable": true
412 | },
413 | "source": [
414 | "## REMEMBER: Restart this notebook to close connection to `sparkifydb`\n",
415 | "Each time you run the cells above, remember to restart this notebook to close the connection to your database. Otherwise, you won't be able to run your code in `create_tables.py`, `etl.py`, or `etl.ipynb` files since you can't make multiple connections to the same database (in this case, sparkifydb)."
416 | ]
417 | }
418 | ],
419 | "metadata": {
420 | "kernelspec": {
421 | "display_name": "Python 3",
422 | "language": "python",
423 | "name": "python3"
424 | },
425 | "language_info": {
426 | "codemirror_mode": {
427 | "name": "ipython",
428 | "version": 3
429 | },
430 | "file_extension": ".py",
431 | "mimetype": "text/x-python",
432 | "name": "python",
433 | "nbconvert_exporter": "python",
434 | "pygments_lexer": "ipython3",
435 | "version": "3.6.3"
436 | }
437 | },
438 | "nbformat": 4,
439 | "nbformat_minor": 4
440 | }
441 |
--------------------------------------------------------------------------------