如何在使用Spark对特定格式进行读/写时找到所有选项?

g6ll5ycj  于 2023-06-06  发布在  Apache
关注(0)|答案(1)|浏览(171)

在使用Spark阅读/写入特定格式时,有没有办法找到所有选项?我想它们一定在源代码的某个地方,但我找不到。
下面是我使用spark从Hbase读取数据的代码,它工作正常,但我想知道选项hbase.columns.mappinghbase.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.mappinghbase.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)

我认为有一些可能性,它只出现在运行时/编译时,但我不确定

piah890a

piah890a1#

由于非内置格式是以任意代码实现的,因此除了查阅可用的文档和源代码之外,没有确定的方法可以找到这些选项。
例如,执行以下步骤以查找HBase连接器选项。
1.在线搜索HBase Connector文档/source code
1.请注意,文档中提到了HBaseTableCatalog对象;看看它的定义。
1.注意,存储库的自述文件和各种在线代码片段提到了其他选项,如hbase.spark.pushdown.columnfilter;找出它们在存储库中的定义位置。在本例中,它在HBaseSparkConf对象中定义。
此外,请注意,写入和阅读操作可能具有不同的选项集。

相关问题