From 69e7f62f4e2152bf5097e80543f1321848a540c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bogumi=C5=82=20Kami=C5=84ski?= Date: Wed, 2 Mar 2022 14:58:15 +0100 Subject: [PATCH] add examples to chapter 8 --- Manifest.toml | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++ Project.toml | 2 ++ ch08.jl | 35 +++++++++++++++++++++-- 3 files changed, 114 insertions(+), 2 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 156a971..934b3f8 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -24,6 +24,18 @@ git-tree-sha1 = "62e51b39331de8911e4a7ff6f5aaf38a5f4cc0ae" uuid = "ec485272-7323-5ecc-a04f-4719b315124d" version = "0.2.0" +[[deps.Arrow]] +deps = ["ArrowTypes", "BitIntegers", "CodecLz4", "CodecZstd", "DataAPI", "Dates", "Mmap", "PooledArrays", "SentinelArrays", "Tables", "TimeZones", "UUIDs"] +git-tree-sha1 = "d4a35c773dd7b07ddeeba36f3520aefe517a70f2" +uuid = "69666777-d1a9-59fb-9406-91d4454c9d45" +version = "2.2.0" + +[[deps.ArrowTypes]] +deps = ["UUIDs"] +git-tree-sha1 = "a0633b6d6efabf3f76dacd6eb1b3ec6c42ab0552" +uuid = "31f734f8-188a-4ce0-8406-c8a06bd891cd" +version = "1.2.1" + [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" @@ -47,12 +59,23 @@ git-tree-sha1 = "ecdec412a9abc8db54c0efc5548c64dfce072058" uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" version = "0.5.10" +[[deps.BitIntegers]] +deps = ["Random"] +git-tree-sha1 = "5a814467bda636f3dde5c4ef83c30dd0a19928e0" +uuid = "c3b6d118-76ef-56ca-8cc7-ebb389d030a1" +version = "0.2.6" + [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" version = "1.0.8+0" +[[deps.CEnum]] +git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.4.1" + [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings"] git-tree-sha1 = "9519274b50500b8029973d241d32cfbf0b127d97" @@ -100,12 +123,24 @@ git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7" uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" version = "0.7.2" +[[deps.CodecLz4]] +deps = ["Lz4_jll", "TranscodingStreams"] +git-tree-sha1 = "59fe0cb37784288d6b9f1baebddbf75457395d40" +uuid = "5ba52731-8f18-5e0d-9241-30f10d1ec561" +version = "0.4.0" + [[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.0" +[[deps.CodecZstd]] +deps = ["CEnum", "TranscodingStreams", "Zstd_jll"] +git-tree-sha1 = "849470b337d0fa8449c21061de922386f32949d9" +uuid = "6b39b394-51ab-5f42-8807-6242bab2b4c2" +version = "0.7.2" + [[deps.ColorSchemes]] deps = ["ColorTypes", "Colors", "FixedPointNumbers", "Random"] git-tree-sha1 = "12fc73e5e0af68ad3137b886e3f7c1eacfca2640" @@ -162,6 +197,11 @@ git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" +[[deps.DBInterface]] +git-tree-sha1 = "9b0dc525a052b9269ccc5f7f04d5b3639c65bca5" +uuid = "a10d1c49-ce27-4219-8d33-6db1a4562965" +version = "2.5.0" + [[deps.DataAPI]] git-tree-sha1 = "cc70b17275652eb47bc9e5f81635981f13cea5c8" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" @@ -254,6 +294,11 @@ git-tree-sha1 = "ae13fcbc7ab8f16b0856729b050ef0c446aa3492" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.4.4+0" +[[deps.ExprTools]] +git-tree-sha1 = "56559bbef6ca5ea0c0818fa5c90320398a6fbf8d" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.8" + [[deps.FFMPEG]] deps = ["FFMPEG_jll"] git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" @@ -495,6 +540,10 @@ git-tree-sha1 = "a6552bfeab40de157a297d84e03ade4b8177677f" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" version = "0.15.12" +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -581,6 +630,12 @@ version = "0.3.6" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +[[deps.Lz4_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "5d494bc6e85c4c9b626ee0cab05daa4085486ab1" +uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" +version = "1.9.3+0" + [[deps.MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "3d3e902b31198a27340d0bf00d6ac452866021cf" @@ -615,6 +670,12 @@ version = "1.0.2" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +[[deps.Mocking]] +deps = ["Compat", "ExprTools"] +git-tree-sha1 = "29714d0a7a8083bba8427a4fbfb00a540c681ce7" +uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" +version = "0.7.3" + [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" @@ -834,6 +895,18 @@ version = "0.3.0+0" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +[[deps.SQLite]] +deps = ["BinaryProvider", "DBInterface", "Dates", "Libdl", "Random", "SQLite_jll", "Serialization", "Tables", "Test", "WeakRefStrings"] +git-tree-sha1 = "8e14d9b200b975e93a0ae0e5d17dea1c262690ee" +uuid = "0aa819cd-b072-5ff4-a722-6bc24af294d9" +version = "1.4.0" + +[[deps.SQLite_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "f79c1c58951ea4f5bb63bb96b99bf7f440a3f774" +uuid = "76ed43ae-9a5d-5a62-8c75-30186b810ce8" +version = "3.38.0+0" + [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "0b4b7f1393cff97c33891da2a0bf69c6ed241fda" @@ -969,6 +1042,12 @@ uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +[[deps.TimeZones]] +deps = ["Dates", "Downloads", "InlineStrings", "LazyArtifacts", "Mocking", "Printf", "RecipesBase", "Serialization", "Unicode"] +git-tree-sha1 = "0f1017f68dc25f1a0cb99f4988f78fe4f2e7955f" +uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" +version = "1.7.1" + [[deps.TranscodingStreams]] deps = ["Random", "Test"] git-tree-sha1 = "216b95ea110b5972db65aa90f88d8d89dcb8851c" diff --git a/Project.toml b/Project.toml index 96298ce..d817049 100644 --- a/Project.toml +++ b/Project.toml @@ -1,4 +1,5 @@ [deps] +Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" @@ -21,5 +22,6 @@ PooledArrays = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" RCall = "6f49c342-dc21-5d91-9882-a32aef131414" ROCAnalysis = "f535d66d-59bb-5153-8d2b-ef0a426c6aff" +SQLite = "0aa819cd-b072-5ff4-a722-6bc24af294d9" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" ZipFile = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" diff --git a/ch08.jl b/ch08.jl index 6017317..601796c 100644 --- a/ch08.jl +++ b/ch08.jl @@ -9,8 +9,8 @@ if isfile("puzzles.csv.bz2") else @info "fetching file" download("https://database.lichess.org/" * - "lichess_db_puzzle.csv.bz2", - "puzzles.csv.bz2") + "lichess_db_puzzle.csv.bz2", + "puzzles.csv.bz2") end using CodecBzip2 @@ -112,3 +112,34 @@ plot(histogram(puzzles.Rating, label="Rating"), plot([histogram(puzzles[!, col]; label=col) for col in ["Rating", "RatingDeviation", "Popularity", "NbPlays"]]...) + +# Code for section 8.4 + +# Codes for Arrow examples +using Arrow +Arrow.write("puzzles.arrow", puzzles) + +arrow_table = Arrow.Table("puzzles.arrow") +puzzles_arrow = DataFrame(arrow_table); +puzzles_arrow == puzzles + +puzzles_arrow.PuzzleId +puzzles_arrow.PuzzleId[1] = "newID" + +puzzles_arrow = copy(puzzles_arrow); +puzzles_arrow.PuzzleId + +# Codes for SQLite examples +using SQLite +db = SQLite.DB("puzzles.db") + +SQLite.load!(puzzles, db, "puzzles") + +SQLite.tables(db) +SQLite.columns(db, "puzzles") + +query = DBInterface.execute(db, "SELECT * FROM puzzles") +puzzles_db = DataFrame(query); +puzzles_db == puzzles + +puzzles_db.PuzzleId