Có cách nào để đọc tệp HDF5 bằng phiên bản Scala của Spark không? Dường như nó có thể được thực hiện bằng Python (thông qua Pyspark), nhưng tôi không thể tìm thấy bất cứ điều gì cho Scala.Đọc tệp HDF5 trong Apache Spark
Trả lời
Không có triển khai Hadoop InputFormat
cho HDF5 vì không thể phân chia tùy ý: "Breaking the container into blocks is a bit like taking an axe and chopping it to pieces, severing blindly the content and the smart wiring in the process. The result is a mess, because there's no alignment or correlation between HDFS block boundaries and the internal HDF5 cargo layout or container support structure." Trang web tương tự thảo luận khả năng chuyển tệp HDF5 thành tệp Avro, do đó cho phép chúng được đọc bởi Hadoop/Spark, nhưng ví dụ PySpark mà bạn ám chỉ có lẽ là một cách đơn giản hơn, nhưng như các tài liệu được liên kết đề cập, có một số thách thức kỹ thuật cần được giải quyết để làm việc hiệu quả và hiệu quả với các tài liệu HDF5 trong Hadoop/Spark.
Điều này có thể giúp bạn bắt đầu.
http://hdfgroup.org/wp/2015/03/from-hdf5-datasets-to-apache-spark-rdds/
Có một sản phẩm mới có thể nói chuyện với HDF5 từ Apache Spark qua Scala:
https://www.hdfgroup.org/downloads/spark-connector/
Với sản phẩm trên, bạn có thể mở và đọc HDF5 như dưới đây trong Scala:
//
// HOW TO RUN:
//
// $spark-2.3.0-SNAPSHOT-bin-hdf5s-0.0.1/bin/spark-shell -i demo.scala
import org.hdfgroup.spark.hdf5._
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder().appName("Spark SQL HDF5 example").getOrCreate()
// We assume that HDF5 files (e.g., GSSTF_NCEP.3.2008.12.31.he5) are
// under /tmp directory. Change the path name ('/tmp') if necessary.
val df=spark.read.option("extension", "he5").option("recursion", "false").hdf5("/tmp/", "/HDFEOS/GRIDS/NCEP/Data Fields/SST")
// Let's print some values from the dataset.
df.show()
// The output will look like below.
//
//+------+-----+------+
//|FileID|Index| Value|
//+------+-----+------+
//| 0| 0|-999.0|
//| 0| 1|-999.0|
//| 0| 2|-999.0|
//...
System.exit(0)
Câu trả lời cho this question có ví dụ về cách đọc nhiều hdf5 f iles (nén dưới dạng .tar.gz) từ Million Song Dataset và trích xuất các tính năng của từng tệp để kết thúc với một RDD Spark nơi mỗi phần tử của RDD là một mảng các tính năng của mỗi tệp hdf5.
- 1. Đọc các tệp json khá in trong Apache Spark
- 2. Apache Spark đọc tệp dưới dạng luồng từ HDFS
- 3. Apache Spark vs Apache Spark 2
- 4. Đọc danh sách kết hợp không được hỗ trợ từ một tệp Avro trong Apache Spark
- 5. Hỗ trợ nén trong Apache Spark
- 6. Pandas không thể đọc tệp hdf5 được tạo bằng h5py
- 7. Apache Spark và Apache Storm
- 8. Apache Spark RDD Split "|"
- 9. Apache Drill vs Spark
- 10. Apache Spark: java.lang.NoSuchMethodError .rddToPairRDDFunctions
- 11. Reading JSON với Apache Spark - `corrupt_record`
- 12. Apache Spark vs Akka
- 13. Apache Spark java.lang.ClassNotFoundException
- 14. Apache Spark Stderr và Stdout
- 15. Định dạng tệp mô hình Apache Spark MLlib
- 16. Sử dụng R trong Apache Spark
- 17. Sử dụng reduceByKey trong Apache Spark (Scala)
- 18. Phép nhân ma trận trong Apache Spark
- 19. gì là ngẫu nhiên đọc & xáo trộn ghi trong Apache Spark
- 20. Xóa thông tin từ tệp HDF5
- 21. Đọc mảng chuỗi từ Spark
- 22. lỗi _corrupt_record khi đọc một tệp JSON vào Spark
- 23. Đọc các tệp JSON lớn vào Khung dữ liệu Spark
- 24. Có thể đọc các tệp pdf/audio/video (dữ liệu phi cấu trúc) bằng Apache Spark không?
- 25. Làm thế nào để chạy Nguồn Apache Spark trong C#
- 26. Xóa dữ liệu khỏi tệp HDF5
- 27. Cấu hình cổng mạng Apache Spark
- 28. Apache Spark streaming vs Spring XD Streams
- 29. Cấu trúc Lambda với Apache Spark
- 30. Khuyến nghị của Apache Spark ALS