我正在使用Spark 2.1.1来处理具有〜2000特性的数据集,并试图创build一个基本的MLpipe道,由一些变形金刚和一个分类器组成。 我们假设为了简单起见,我正在使用的pipe道包含一个VectorAssembler,StringIndexer和一个Classifier,这将是一个相当常见的用例。 // Pipeline elements val assmbleFeatures: VectorAssembler = new VectorAssembler() .setInputCols(featureColumns) .setOutputCol("featuresRaw") val labelIndexer: StringIndexer = new StringIndexer() .setInputCol("TARGET") .setOutputCol("indexedLabel") // Train a RandomForest model. val rf: RandomForestClassifier = new RandomForestClassifier() .setLabelCol("indexedLabel") .setFeaturesCol("featuresRaw") .setMaxBins(30) // add the params, unique to this classifier val paramGrid = new ParamGridBuilder() .addGrid(rf.numTrees, Array(5)) .addGrid(rf.maxDepth, Array(5)) .build() // […]
考虑一个具有1000万个产品的MySQL products数据库用于电子商务网站。 我试图build立一个分类模块来分类产品。 我正在使用Apache Sqoop将数据从MySQL导入到Hadoop。 我想用Mahout作为一个机器学习框架来使用它的一个分类algorithm ,然后我碰到了Spark提供的MLlib 那么这两个框架有什么区别呢? 主要有哪些优点,各自的缺点和局限性?
我正在评估用于生产基于ML的应用程序的工具,我们的一个选项是Spark MLlib,但是我有一些关于如何在培训之后为模型提供服务的问题? 例如,在Azure ML中,一旦训练完成,该模型将作为一种可从任何应用程序中使用的Web服务公开,这与Amazon ML也是类似的情况。 你如何在Apache Spark中部署ML模型?
如何处理分类数据 spark-ml 而不 spark-mllib ? 认为文档不是很清楚,看起来像RandomForestClassifier , LogisticRegression这样的分类器有一个featuresCol参数,它指定DataFrame列的名称,以及一个labelCol参数,它指定了标签类的列名在DataFrame 。 很显然,我想在预测中使用多个特征,所以我尝试使用VectorAssembler将所有特征放在featuresCol下的单个vector中。 然而, VectorAssembler只接受数字types,布尔types和向量types(根据Spark网站),所以我不能把string放入我的特征向量中。 我应该如何继续?
我正在尝试在JSON文件上创build一个LDA模型。 用JSON文件创build一个spark上下文: import org.apache.spark.sql.SparkSession val sparkSession = SparkSession.builder .master("local") .appName("my-spark-app") .config("spark.some.config.option", "config-value") .getOrCreate() val df = spark.read.json("dbfs:/mnt/JSON6/JSON/sampleDoc.txt") 显示df应该显示DataFrame display(df) 标记文本 import org.apache.spark.ml.feature.RegexTokenizer // Set params for RegexTokenizer val tokenizer = new RegexTokenizer() .setPattern("[\\W_]+") .setMinTokenLength(4) // Filter away tokens with length < 4 .setInputCol("text") .setOutputCol("tokens") // Tokenize document val tokenized_df = tokenizer.transform(df) 这应该显示tokenized_df display(tokenized_df) 获取stopwords %sh […]