From 7126a37561abc5436dacbe1bbb088ed383d64a16 Mon Sep 17 00:00:00 2001 From: Chen Hirsh Date: Wed, 16 Oct 2024 08:34:49 +0300 Subject: [PATCH] clean data with spark in python and SQL --- .../clean data with spark SQL.dbc | Bin 0 -> 11142 bytes .../clean data with spark python.dbc | Bin 0 -> 9607 bytes Databricks/clean data with spark/orders_raw.csv | 12 ++++++++++++ 3 files changed, 12 insertions(+) create mode 100644 Databricks/clean data with spark/clean data with spark SQL.dbc create mode 100644 Databricks/clean data with spark/clean data with spark python.dbc create mode 100644 Databricks/clean data with spark/orders_raw.csv diff --git a/Databricks/clean data with spark/clean data with spark SQL.dbc b/Databricks/clean data with spark/clean data with spark SQL.dbc new file mode 100644 index 0000000000000000000000000000000000000000..23e543a6d938f1bfed2267b6b2d836abbd965d23 GIT binary patch literal 11142 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 literal 0 HcmV?d00001 diff --git a/Databricks/clean data with spark/clean data with spark python.dbc b/Databricks/clean data with spark/clean data with spark python.dbc new file mode 100644 index 0000000000000000000000000000000000000000..1b0212c8e4865212eeed169b17de29d3fc469107 GIT binary patch literal 9607 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 z