在使用Spark阅读/写入特定格式时,有没有办法找到所有选项?我想它们一定在源代码的某个地方,但我找不到。
下面是我使用spark从Hbase读取数据的代码,它工作正常,但我想知道选项hbase.columns.mapping
和hbase.table
来自哪里。还有其他选择吗
val spark = SparkSession.builder().master("local").getOrCreate()
val hbaseConf = HBaseConfiguration.create()
hbaseConf.set("hbase.zookeeper.quorum", "vftsandbox-namenode,vftsandbox-snamenode,vftsandbox-node03")
new HBaseContext(spark.sparkContext, hbaseConf)
val hbaseTable = "mytable"
val columnMapping =
"""id STRING :key,
mycfColumn1 STRING mycf:column1,
mycfColumn2 STRING mycf:column2,
mycfCol1 STRING mycf:col1,
mycfCol3 STRING mycf:col3
"""
val hbaseSource = "org.apache.hadoop.hbase.spark"
val hbaseDF = spark.read.format(hbaseSource)
.option("hbase.columns.mapping", columnMapping)
.option("hbase.table", hbaseTable)
.load()
hbaseDF.show()
我的意思是,如果是format(csv)
或format(json)
,那么互联网上有一些文档提供了所有选项,但对于这种特定格式(org.apache.hadoop.hbase.spark
),我没有运气。即使是csv或json,互联网上的所有选项都必须来自代码,对吗?他们不能只是想象出来。
现在我认为问题是**“如何在源代码中找到所有的spark选项”。我尝试使用IntelliJ Idea搜索工具从所有地方(甚至在源代码库中)进行搜索,但到目前为止没有运气。找不到任何与hbase.columns.mapping
或hbase.table
相关的东西(已经尝试过hbase_columns_mapping
),在org.apache.hadoop.hbase.spark
中也没有相关的东西,在我的代码中只有示例。
运行代码后,我还在控制台中发现了这些行。但是HbaseRelation
类是一个“反编译”类,具有所有的???
17:53:51.205 [main] DEBUG org.apache.spark.util.ClosureCleaner - HBaseRelation(Map(hbase.columns.mapping -> id STRING :key,
mycfColumn1 STRING mycf:column1,
mycfColumn2 STRING mycf:column2,
mycfCol1 STRING mycf:col1,
mycfCol3 STRING mycf:col3
, hbase.table -> mytable),None)
我认为有一些可能性,它只出现在运行时/编译时,但我不确定
1条答案
按热度按时间piah890a1#
由于非内置格式是以任意代码实现的,因此除了查阅可用的文档和源代码之外,没有确定的方法可以找到这些选项。
例如,执行以下步骤以查找HBase连接器选项。
1.在线搜索HBase Connector文档/source code。
1.请注意,文档中提到了HBaseTableCatalog对象;看看它的定义。
1.注意,存储库的自述文件和各种在线代码片段提到了其他选项,如
hbase.spark.pushdown.columnfilter
;找出它们在存储库中的定义位置。在本例中,它在HBaseSparkConf对象中定义。此外,请注意,写入和阅读操作可能具有不同的选项集。