当从文本文件或集合(或从另一个RDD)创建弹性分布式数据集(RDD)时,我们是否需要显式调用"cache"或"persist"来将RDD数据存储到内存中?或者默认情况下RDD数据是以分布式方式存储在内存中的吗?
val textFile = sc.textFile("/user/emp.txt")
Run Code Online (Sandbox Code Playgroud)
根据我的理解,在上面的步骤之后,textFile是一个RDD,并且可以在节点的所有/部分内存中使用.
如果是这样,为什么我们需要在textFile RDD上调用"cache"或"persist"呢?
我的群集处于黄色状态,因为某些分片未分配.该怎么办?
我尝试设置cluster.routing.allocation.disable_allocation = false所有索引,但我认为这不起作用,因为我使用的是1.1.1版本.
我也尝试重新启动所有机器,但同样的情况发生了.
任何的想法?
编辑:
群集统计:
{
cluster_name: "elasticsearch",
status: "red",
timed_out: false,
number_of_nodes: 5,
number_of_data_nodes: 4,
active_primary_shards: 4689,
active_shards: 4689,
relocating_shards: 0,
initializing_shards: 10,
unassigned_shards: 758
}
Run Code Online (Sandbox Code Playgroud)如何处理与分类数据 spark-ml ,而不是 spark-mllib?
认为文档不是很清楚,似乎分类器例如RandomForestClassifier,LogisticRegression有一个featuresCol参数,它指定了特征列的名称DataFrame,以及一个labelCol参数,它指定了标记类的列的名称DataFrame.
显然我想在我的预测中使用多个功能,所以我尝试使用VectorAssembler将所有功能放在一个向量下featuresCol.
但是,VectorAssembler只接受数字类型,布尔类型和矢量类型(根据Spark网站),所以我不能在我的特征向量中添加字符串.
我该怎么办?
categorical-data apache-spark apache-spark-ml apache-spark-mllib
我正在评估基于生产ML的应用程序的工具,我们的一个选项是Spark MLlib,但是我对如何在训练后提供模型服务有一些疑问?
例如,在Azure ML中,一旦经过培训,该模型将作为Web服务公开,可以从任何应用程序中使用,这与Amazon ML类似.
您如何在Apache Spark中提供/部署ML模型?
目前我们正在生产中使用Avro数据格式.在Avro的N个优点中,我们知道它在模式演化方面很有用.
现在我们正在评估Parquet格式,因为它在阅读随机列时具有很高的效率.所以在继续前进之前我们关心的是架构演变!
有谁知道,如果模式演化是可能的实木复合地板,如果是如何,如果没有为什么.一些演示文稿说它是可能的但是只能在最后添加列
这是什么意思?
我使用CassandraSQLContextspark-shell来查询来自Cassandra的数据.所以,我想知道两个方面,一个是如何获取超过20行CassandraSQLContext,第二个是如何Id显示列的完整值.正如您在默认情况下可以看到的那样,它会在字符串值中附加点.
代码:
val csc = new CassandraSQLContext(sc)
csc.setKeyspace("KeySpace")
val maxDF = csc.sql("SQL_QUERY" )
maxDF.show
Run Code Online (Sandbox Code Playgroud)
输出:
+--------------------+--------------------+-----------------+--------------------+
| id| Col2| Col3| Col4|
+--------------------+--------------------+-----------------+--------------------+
|8wzloRMrGpf8Q3bbk...| Value1| X| K1|
|AxRfoHDjV1Fk18OqS...| Value2| Y| K2|
|FpMVRlaHsEOcHyDgy...| Value3| Z| K3|
|HERt8eFLRtKkiZndy...| Value4| U| K4|
|nWOcbbbm8ZOjUSNfY...| Value5| V| K5|
Run Code Online (Sandbox Code Playgroud) 我正在尝试在数据集的样本上使用高斯混合模型.我使用了两个MLlib(带pyspark)和scikit-learn得到非常不同的结果,scikit-learn一个看起来更逼真.
from pyspark.mllib.clustering import GaussianMixture as SparkGaussianMixture
from sklearn.mixture import GaussianMixture
from pyspark.mllib.linalg import Vectors
Run Code Online (Sandbox Code Playgroud)
Scikit-learn:
local = pd.DataFrame([ x.asDict() for x in df.sample(0.0001).collect() ])
model1 = GaussianMixture(n_components=3)
model1.fit([ [x] for x in local['field'].tolist() ])
model1.means_
array([[7.56123598e+00],
[1.32517410e+07],
[3.96762639e+04]])
model1.covariances_
array([[[6.65177423e+00]],
[[1.00000000e-06]],
[[8.38380897e+10]]])
Run Code Online (Sandbox Code Playgroud)
MLLib:
model2 = SparkGaussianMixture.train(
sc.createDataFrame(local).rdd.map(lambda x: Vectors.dense(x.field)),
k=3,
convergenceTol=1e-4,
maxIterations=100
)
model2.gaussians
[MultivariateGaussian(mu=DenseVector([28736.5113]), sigma=DenseMatrix(1, 1, [1094083795.0001], 0)),
MultivariateGaussian(mu=DenseVector([7839059.9208]), sigma=DenseMatrix(1, 1, [38775218707109.83], 0)),
MultivariateGaussian(mu=DenseVector([43.8723]), sigma=DenseMatrix(1, 1, [608204.4711], 0))] …Run Code Online (Sandbox Code Playgroud) apache-spark ×9
pyspark ×3
scala ×2
avro ×1
dataframe ×1
hadoop ×1
mahout ×1
parquet ×1
pyspark-sql ×1
python ×1
rdd ×1
scikit-learn ×1