- vừa được xem lúc

Đọc dữ liệu từ một file text và ghi lại dưới dạng file parquet trên HDFS sử dụng Spark (Phần 2)

0 0 50

Người đăng: Nguyễn Quang Huy

Theo Viblo Asia

Các bạn chưa đọc phần 1 thì có thể đọc tại đây nha : Đọc dữ liệu từ một file text và ghi lại dưới dạng file parquet trên HDFS sử dụng Spark (Phần 1)

Ghi dữ liệu ra file parquet sử dụng Spark

Khi ta đã lấy được toàn bộ dữ liệu text ra file listModelLog thì việc ghi dữ liệu ra file parquet là cực kì đơn giản :

SparkSession spark = SparkSession.builder().appName("Write file parquet to HDFS").master("local").getOrCreate(); Dataset<Row> listModelLogDF = spark.createDataFrame(listModelLog, ModelLog.class);
listModelLogDF.write().parquet("hdfs://127.0.0.1:9000/usr/trannguyenhan/pageviewlog");

Để kiểm tra xem đã ghi vào file thành công hay chưa, ta đọc dữ liệu từ file parquet đó ra một Dataset và show nó ra như sau :

SparkSession spark = SparkSession.builder().appName("Read file parquet to HDFS").master("local").getOrCreate();
Dataset<Row> parquetFile = spark.read().parquet( "hdfs://127.0.0.1:9001/usr/trannguyenhan/pageviewlog");
parquetFile.show();

Kết quả sau khi chạy như dưới thì là bạn đã tạo file parquet thành công : ( Kết quả show ra chỉ tối đa là 20 dòng thôi nha)

Chạy chương trình Java trên Spark

Nếu chỉ Run Application thì chương trình sẽ chỉ chạy trên máy local, để có thể chạy project trên Spark nếu sử dụng Scala thì ta có thể test và kiểm tra luôn bằng Spark-shell, còn nếu sử dụng Java thì phức tạp hơn tí, ta sẽ phải build project ra file jar và submit bằng Spark-submit. Trước tiên hãy thêm plugin maven-jar-plugin để có thể build file jar dễ dàng hơn :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>main.Main</mainClass> </manifest> </archive> </configuration>
</plugin>

Tiếp theo, bạn mở terminal lên tại vị trí đặt project của bạn là thực hiện lần lượt các lệnh sau :

mvn clean package
spark-submit --class main.Main --master local[2] target/SparkTutorials-V1.jar 

Trong đó main.Main là đường dẫn tới Class chứa hàm main của bạn, local[2] theo mình được hiểu là Spark sẽ sử dụng 2 nhân để run project thì phải (cái này mình cũng không rõ lắm). còn cuối cùng target/SparkTutorials-V1.jar là đường dẫn tới file jar của bạn ( file jar build ra bằng maven sẽ được để trong thư muc target).
Xem toàn bộ mã nguồn của bài này trên github của mình ở đây nha : https://github.com/trannguyenhan/parquet-io-spark (Nếu bạn thấy hay cho mình 1 sao vào repo nha).

Tham khảo : https://www.tailieubkhn.com/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 302

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 277

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 50

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 194

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 71

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 139