php不友好,日期格式为d / m / Y.(php not friendly with date format d/m/Y)
我无法将日期转换为
d/m/Y
格式。
date("dmY", strtotime(substr($code, 22, 6)) );
返回21-10-2014
但是
date("d/m/Y", strtotime(substr($code, 22, 6)) );
返回21/10/2014如何格式化?I can't convert date to format
d/m/Y
.
date("d-m-Y", strtotime(substr($code, 22, 6)) );
return21-10-2014
but
date("d/m/Y", strtotime(substr($code, 22, 6)) );
return 21/10/2014 How to format?
原文:
最满意答案
需要像这样的操作的上下文在Spark中相对较少。 有一两个异常,Spark API期望常见的
Vector
类不是特定的实现(SparseVector
,DenseVector
)。 对于oasmllib.linalg.distributed
的分布式结构,情况也是如此import org.apache.spark.mllib.linalg.{Vector, Vectors} import org.apache.spark.mllib.linalg.distributed.RowMatrix val df = Seq[(Long, Vector)]( (1L, Vectors.dense(1, 2, 3)), (2L, Vectors.sparse(3, Array(1), Array(3))) ).toDF("id", "v") new RowMatrix(df.select("v") .map(_.getAs[Vector]("v"))) .columnSimilarities(0.9) .entries .first // apache.spark.mllib.linalg.distributed.MatrixEntry = MatrixEntry(0,2,1.0)
不过你可以使用这样的UDF:
val asDense = udf((v: Vector) => v.toDense) df.withColumn("vd", asDense($"v")).show // +---+-------------+-------------+ // | id| v| vd| // +---+-------------+-------------+ // | 1|[1.0,2.0,3.0]|[1.0,2.0,3.0]| // | 2|(3,[1],[3.0])|[0.0,3.0,0.0]| // +---+-------------+-------------+
请记住,自2.0版本Spark以来提供了两种不同且兼容的
Vector
类型:
oasml.linalg.Vector
oasmllib.linalg.Vector
每个都有相应的SQL UDT。 在Spark 2.0中访问向量列时请参阅MatchError
Contexts which require operation like this are relatively rare in Spark. With one or two exception Spark API expects common
Vector
class not specific implementation (SparseVector
,DenseVector
). This is also true in case of distributed structures fromo.a.s.mllib.linalg.distributed
import org.apache.spark.mllib.linalg.{Vector, Vectors} import org.apache.spark.mllib.linalg.distributed.RowMatrix val df = Seq[(Long, Vector)]( (1L, Vectors.dense(1, 2, 3)), (2L, Vectors.sparse(3, Array(1), Array(3))) ).toDF("id", "v") new RowMatrix(df.select("v") .map(_.getAs[Vector]("v"))) .columnSimilarities(0.9) .entries .first // apache.spark.mllib.linalg.distributed.MatrixEntry = MatrixEntry(0,2,1.0)
Nevertheless you could use an UDF like this:
val asDense = udf((v: Vector) => v.toDense) df.withColumn("vd", asDense($"v")).show // +---+-------------+-------------+ // | id| v| vd| // +---+-------------+-------------+ // | 1|[1.0,2.0,3.0]|[1.0,2.0,3.0]| // | 2|(3,[1],[3.0])|[0.0,3.0,0.0]| // +---+-------------+-------------+
Just keep in mind that since version 2.0 Spark provides two different and compatible
Vector
types:
o.a.s.ml.linalg.Vector
o.a.s.mllib.linalg.Vector
each with corresponding SQL UDT. See MatchError while accessing vector column in Spark 2.0
相关问答
更多-
到目前为止,我使用了以下问题进行故障排除,但无法解决问题(我猜测它是矢量类型问题): ... Spark错误:用于构造ClassDict的期望零参数(用于numpy.core.multiarray._reconstruct) ... 你的答案在那里: def dot_product(vec): #dot_value = value.dot(DenseVector(vec[3])) dot_value = sum(value * DenseVector(vec[3])) return ...
-
我肯定不知道答案,但我会猜测你发生了什么。 我不了解Fortran,但从C ++的角度来看,你所展示的内容是有道理的,我们只需要解构那个陈述。 a = b + c的伪代码转换,其中a,b是满的, c是稀疏的,看起来像a.operator= ( b.operator+ (c) ) 。 很可能,Matlab中的完整矩阵容器应该有专门的算术运算符来处理稀疏输入,即像full full::operator+ ( const sparse& ) 。 这里需要注意的主要问题是混合完全/稀疏算术运算的结果必须是满的。 因 ...
-
这似乎是您的import语句的问题。 正如您所注意到的, CountVectorizer将使用ml包向量,因此,所有向量导入也应使用此包。 确保使用旧的mllib没有任何导入。 这包括: import org.apache.spark.mllib.linalg.Vector import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.linalg.SparseVector import org.apache.spark ...
-
稀疏与密集向量PySpark(Sparse vs. Dense Vectors PySpark)[2024-03-25]
要记住的是, pyspark.ml.linalg.Vector和pyspark.mllib.linalg.Vector只是Python和Java API之间的兼容层。 没有全功能或优化的线性代数实用程序,您不应该这样使用它们。 可用的操作要么不是为了性能而设计的,要么只是转换为标准的NumPy数组。 当与其他ml / mllib工具mllib使用时,将序列化并转换为Java等价物,因此Python表示性能几乎是无关紧要的。 这意味着最大的真正关注点是存储,一个简单的经验法则是: 如果平均一半条目为零,则最好 ... -
如果你有一个标量列,那么StandardScaler是一个严重的矫枉过正。 您可以直接进行缩放: from pyspark.sql.functions import col, stddev_samp df.withColumn("scaled", col("DF_column") / df.agg(stddev_samp("DF_column")).first()[0]) 但如果你真的想要使用缩放比先组装一个载体: from pyspark.ml.feature import VectorAssem ...
-
从MATLAB稀疏矩阵中提取压缩列存储向量(Extract the Compressed Column Storage vectors from MATLAB sparse matrix)[2023-07-07]
我认为这是它: col_ptr = [0 cumsum(sum(A~=0,1))]; [row_index, ~, values] = find(A); row_index = row_index.'-1; values = values.'; I think this does it: col_ptr = [0 cumsum(sum(A~=0,1))]; [row_index, ~, values] = find(A); row_index = row_index.'-1; values = value ... -
这与稀疏无关。 由于Spark 2.0.0 ML Transformers不再生成oasmllib.linalg.VectorUDT而是生成oasml.linalg.VectorUDT并将其本地映射到oasml.linalg.Vector子类。 这些与Spark 2.0.0中的旧版MLLib API不兼容。 您可以使用Vectors.fromML将其转换为“旧”: import org.apache.spark.mllib.linalg.{Vectors => OldVectors} import org. ...
-
它可以通过使用SparseVector的toDense方法来完成: val sv = Vectors.sparse(5, Array(0, 3), Array(1.5, -1.5)) sv.toDense // res0: org.apache.spark.mllib.linalg.DenseVector = [1.5,0.0,0.0,-1.5,0.0] It can be done by using SparseVector's toDense method: val sv = Vectors.spar ...
-
这解决了我的问题 frequencyDenseVectors = frequencyVectors.map(lambda vector: DenseVector(vector.toArray())) This resolved my issue frequencyDenseVectors = frequencyVectors.map(lambda vector: DenseVector(vector.toArray()))
-
需要像这样的操作的上下文在Spark中相对较少。 有一两个异常,Spark API期望常见的Vector类不是特定的实现( SparseVector , DenseVector )。 对于oasmllib.linalg.distributed的分布式结构,情况也是如此 import org.apache.spark.mllib.linalg.{Vector, Vectors} import org.apache.spark.mllib.linalg.distributed.RowMatrix val df ...