有没有一种方法可以使用Spark的Scala版本读取HDF5文件?
看起来在Python中可以通过Pyspark实现,但是我找不到Scala的相关内容。
有没有一种方法可以使用Spark的Scala版本读取HDF5文件?
看起来在Python中可以通过Pyspark实现,但是我找不到Scala的相关内容。
有一个新产品可以通过Scala与Apache Spark对HDF5进行交互:
https://www.hdfgroup.org/downloads/hdf5-enterprise-support/hdf5-connector-for-apache-spark/
使用上述产品,您可以在Scala中像下面这样打开和读取HDF5:
//
// 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)
这个问题的答案提供了一个示例,演示如何从百万歌曲数据集中读取多个压缩为.tar.gz格式的hdf5文件,并提取每个文件的特征,最终得到一个Spark RDD,其中RDD的每个元素都是每个hdf5文件的特征数组。