Я не знаю вашей конкретной потребности в этом, но если вы также используете .NET, не могли бы вы использовать Html Agility Pack ?
Выдержка:
Это библиотека .NET-кода, которая позволяет анализировать HTML-файлы вне Интернета. Синтаксический анализатор очень толерантен с искаженным HTML «реальным миром».
Если вы используете Spark, вы можете сделать это с помощью wilcards следующим образом:
scala>sc.textFile("path/*/*")
sc - это SparkContext, который, если вы используете искровую оболочку, инициализируется по умолчанию или если вы создаете свой для собственной программы должен быть установлен экземпляр SparkContext.
Будьте осторожны со следующим флагом:
scala> sc.hadoopConfiguration.get ("mapreduce.input.fileinputformat.input.dir.recursive") res6: String = null
blockquote>Yo должен установить этот флаг в значение true:
sc.hadoopConfiguration.set ("mapreduce.input.fileinputformat.input.dir.recursive", "true")
blockquote>
Я обнаружил, что параметры должны быть установлены следующим образом:
.set("spark.hive.mapred.supports.subdirectories","true")
.set("spark.hadoop.mapreduce.input.fileinputformat.input.dir.recursive","true")
val myRDD = sc.textFile("path/*/*")
? Не нужно использоватьsetInputDirRecursive
? Получу ли я RDD String? (Мне нужно RDD строки) – user7379562 3 February 2017 в 18:42sc.textFile(...)
, правильно? Затем, чтобы преобразовать его в DataFrame, этот подход будет работать ?:val rddFromHadoop = sc.textFile("path/*/*") import sqlContext.implicits._ var df = rddFromHadoop.toDF()
. Или я должен анализироватьrddFromHadoop
доRDD[Map[String,String]]
перед применениемtoDF()
? Извините, за этот дополнительный вопрос. Для меня просто важно понять, что мой общий подход будет работать, если я буду использоватьtextFile
и читать файлы хаопиша в RDD. – user7379562 3 February 2017 в 21:36var df = sqlContext.read.json("path/*/*")
, предполагая, что у меня есть данные в подпапках, но эти данные hadoopish были сохранены из RDD строк JSON (rdd.saveAsTextFile(filePath)
). Если это так, это действительно здорово. – user7379562 3 February 2017 в 21:58