使用 Spark 和 C# 处理 XML 个文件
Processing XML files with Spark and C#
我正在开发一个系统,该系统将充当模拟工具链数据集的 OLAP 引擎。这些工具在 XML 中生成结果。
对我来说最简单和最简单的解决方案是简单地使用 spark-xml 直接使用 python、Scala 等访问 XML 文件。但是问题是项目所有者想要使用 C#,因为这是内置的原始模拟工具链。我知道 C# 有 SparkCLR,但我不知道在 C# 中使用 Spark-XML 的好方法。
有人对如何执行此操作有任何建议吗?如果不是,我想下一个选择是将数据集转换为更适合 SparkCLR 的内容,但不确定最佳方法。
我不知道 .NET 世界中的 Spark 有什么好的模拟。 P-LINQ 可能是最接近的,但不是分布式的。 Microsoft Azure 提供 Hadoop、R 等,您可以将它们用于分布式 map-reduce 类型的功能。
希望项目所有者理解您在 C# 中完成工作需要付出更多努力。
SparkCLR 与 spark-xml 配合使用。以下代码展示了如何使用 C# 将 XML 处理为 Spark DataFrame。您可以使用此代码示例开始为 Spark 构建 XML 处理 C# 应用程序。此示例实现了 https://github.com/databricks/spark-xml#scala-api 中提供的相同示例。请注意,您需要在提交作业时包含 spark-xml jar。
var sparkConf = new SparkConf();
var sparkContext = new SparkContext(sparkConf);
var sqlContext = new SqlContext(sparkContext);
var df = sqlContext.Read()
.Format("com.databricks.spark.xml")
.Option("rowTag", "book")
.Load(@"D:\temp\spark-xml\books.xml");
var selectedData = df.Select("author", "@id");
selectedData.Write()
.Format("com.databricks.spark.xml")
.Option("rootTag", "books")
.Option("rowTag", "book")
.Save(@"D:\temp\spark-xml\newbooks.xml");
我正在开发一个系统,该系统将充当模拟工具链数据集的 OLAP 引擎。这些工具在 XML 中生成结果。
对我来说最简单和最简单的解决方案是简单地使用 spark-xml 直接使用 python、Scala 等访问 XML 文件。但是问题是项目所有者想要使用 C#,因为这是内置的原始模拟工具链。我知道 C# 有 SparkCLR,但我不知道在 C# 中使用 Spark-XML 的好方法。
有人对如何执行此操作有任何建议吗?如果不是,我想下一个选择是将数据集转换为更适合 SparkCLR 的内容,但不确定最佳方法。
我不知道 .NET 世界中的 Spark 有什么好的模拟。 P-LINQ 可能是最接近的,但不是分布式的。 Microsoft Azure 提供 Hadoop、R 等,您可以将它们用于分布式 map-reduce 类型的功能。 希望项目所有者理解您在 C# 中完成工作需要付出更多努力。
SparkCLR 与 spark-xml 配合使用。以下代码展示了如何使用 C# 将 XML 处理为 Spark DataFrame。您可以使用此代码示例开始为 Spark 构建 XML 处理 C# 应用程序。此示例实现了 https://github.com/databricks/spark-xml#scala-api 中提供的相同示例。请注意,您需要在提交作业时包含 spark-xml jar。
var sparkConf = new SparkConf();
var sparkContext = new SparkContext(sparkConf);
var sqlContext = new SqlContext(sparkContext);
var df = sqlContext.Read()
.Format("com.databricks.spark.xml")
.Option("rowTag", "book")
.Load(@"D:\temp\spark-xml\books.xml");
var selectedData = df.Select("author", "@id");
selectedData.Write()
.Format("com.databricks.spark.xml")
.Option("rootTag", "books")
.Option("rowTag", "book")
.Save(@"D:\temp\spark-xml\newbooks.xml");