在scala和java中注解约定“/$example on:”和“/$example off:”

dy2hfwbg  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(321)

我在标准spark distribution的“examples”文件夹中找到了它,评论如下:

// $example on:programmatic_schema$
import org.apache.spark.sql.Row
// $example off:programmatic_schema$
// $example on:init_session$
import org.apache.spark.sql.SparkSession
// $example off:init_session$
// $example on:programmatic_schema$
// $example on:data_types$
import org.apache.spark.sql.types._
// $example off:data_types$
// $example off:programmatic_schema$

object SparkSQLExample {

  // $example on:create_ds$
  case class Person(name: String, age: Long)
  // $example off:create_ds$

真的很难找到它是为了什么,我怀疑一些自动文档工具?java和scala也是如此。

h6my8fg2

h6my8fg21#

spark使用一个定制的jekyll插件来生成他们的文档,称为 include_example.rb . 这允许他们使用 include_example 标记他们的降价来源,以包括回购协议中的文件。
插件包含以下描述:


# Select lines according to labels in code. Currently we use "$example on$" and "$example off$"

# as labels. Note that code blocks identified by the labels should not overlap.

因此,存在这些注解,以便它们可以更好地自动生成文档。
问题中显示的文件包含在getting-started.md中。通过 {% include_example create_df scala/org/apache/spark/examples/sql/SparkSQLExample.scala %}. 您可以在getting started-spark 3.0.0文档中看到它的完整呈现。
如您所见,它们使用这些标记来去除每种语言的无关信息/样板文件,并且只显示特定的位。不同的标签允许他们选择文件的不同位。

相关问题