- Đây là đống code dùng để tiếp thu thứ kiến thức kỳ quái mang tên Spark
- Spark được viết bằng Java, PySpark là giao diện Python của nó
- Spark dùng để handle các file data có kích thước lớn. Nó tính toán trên RAM nên mọi thứ khá nhanh
- Spark
- PySpark
- Pandas (đụng tới chút xíu)
- pymssql
- SQL Server
- Có thể làm theo hướng dẫn trong đường link này
- Máy tui sử dụng MacOS và 3 version Java (nên có 3 con path cho java)
- Configure path in file
~/.zshrc
cho terminal ZSH hoặc~/.bashrc
cho bash thông thường# >>> setup java_home >>> export JAVA_16_HOME=/usr/local/opt/java/libexec/openjdk.jdk/Contents/Home export JAVA_HOME=/usr/local/opt/java11/libexec/openjdk.jdk/Contents/Home export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8) alias java8='export JAVA_HOME=$JAVA_8_HOME' alias java11='export JAVA_HOME=$JAVA_11_HOME' alias java16='export JAVA_HOME=$JAVA_16_HOME' # default: java8 for running pyspark without any error java8 # <<< setup java_home <<< export SPARK_HOME=/usr/local/Cellar/apache-spark/3.1.2/libexec export PATH=/usr/local/Cellar/apache-spark/3.1.2/bin:$PATH #export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell" #export PYSPARK_PYTHON=jupyter #export PYSPARK_DRIVER_PYTHON='notebook'
-
Có thể tham khảo tại đường link này
-
Cần phải cài
freetds
trước khi càipymssql
brew install
-
Sau đó cài Pymssql được kéo trực tiếp từ github về
pip3 install git+https://github.com/pymssql/pymssql.git
-
Cầu nguyện cho mọi thứ work với nhau
./Learn PySpark
: Có thể đọc về các sử dụng cơ bản của PySpark ở đây./ETL
: Demo quá trình ETL dữ liệu từ source về data warehouse sẽ trông như thế nào. Có thể đọc cuốnBuiding A Data Warehouse with Example (Vincent Rainardi)
để hiểu các khái niệm cơ bản, về quy trình ETL dữ liệu hay build 1 data warehouse sẽ diễn ra như thế nào./ETL/Raw Data
: Chứa 1 file data với gần 10.000 dòng dữ liệu giao dịch (Chính là file SuperStore trong dữ liệu demo của Tableau). Data từ 1 file chính (customer_order.csv
) được cắt ra thành 5 file bằng nhau, mỗi file chứa khoảng 1998 dòng./ETL/SQL
: Chứa các schema databases của Source data, meta database, data warehouse./ETL/src
: Chứa source code mô phỏng quá trình source system thay đổi theo thời gian, và code mô phỏng quá trình handle các update, new creation trong source