Я новичок в Spark 1.6. Я бы хотел прочитать файл паркета и обработать его. Для упрощающие предположим иметь паркет с этой структурой:Искра: прочитайте файл паркета и обработайте его
id, amount, label
и у меня есть 3 правила:
amount < 10000 => label=LOW
10000 < amount < 100000 => label=MEDIUM
amount > 1000000 => label = HIGH
Как это сделать в искре и Скале?
Я пытаюсь что-то вроде этого:
case class SampleModels(
id: String,
amount: Double,
label: String,
)
val sc = SparkContext.getOrCreate()
val sqlContext = new SQLContext(sc)
import sqlContext.implicits._
val df = sqlContext.read.parquet("/path/file/")
val ds = df.as[SampleModels].map(row=>
MY LOGIC
WRITE OUTPUT IN PARQUET
)
правильно ли это подход? Это эффективно? «MYLOGIC» может быть более сложным.
Thanks
Это правильный ответ. В общем, предпочитают использовать операции искробезопасных данных/наборов данных. Операции передаются в Оптимизатор Catalyst Spark SQL (https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.html), механизм оптимизации, который запускается под капотом, чтобы лучше выполнять ваши запросы. –