Iva*_*van 2 python apache-spark pyspark
我正在阅读具有以下架构的镶木地板文件:
df.printSchema()
root
|-- time: integer (nullable = true)
|-- amountRange: integer (nullable = true)
|-- label: integer (nullable = true)
|-- pcaVector: vector (nullable = true)
Run Code Online (Sandbox Code Playgroud)
现在我想测试 Pyspark 结构化流,我想使用相同的镶木地板文件。我能够创建的最接近的模式是使用 ArrayType,但它不起作用:
schema = StructType(
[
StructField('time', IntegerType()),
StructField('amountRange', IntegerType()),
StructField('label', IntegerType()),
StructField('pcaVector', ArrayType(FloatType()))
]
)
df_stream = spark.readStream\
.format("parquet")\
.schema(schema)\
.load("/home/user/test_arch/data/fraud/")
Caused by: java.lang.ClassCastException: Expected instance of group converter but got "org.apache.spark.sql.execution.datasources.parquet.ParquetPrimitiveConverter"
at org.apache.parquet.io.api.Converter.asGroupConverter(Converter.java:37)
at org.apache.spark.sql.execution.datasources.parquet.ParquetRowConverter$RepeatedGroupConverter.<init>(ParquetRowConverter.scala:659)
at org.apache.spark.sql.execution.datasources.parquet.ParquetRowConverter.org$apache$spark$sql$execution$datasources$parquet$ParquetRowConverter$$newConverter(ParquetRowConverter.scala:308)
Run Code Online (Sandbox Code Playgroud)
如何为 Pyspark 中的 StructType 创建一个带有 VectorType 的模式,它似乎只存在于 Scala 中?
小智 5
类型是 VectorUDT
from pyspark.ml.linalg import VectorUDT
StructField('pcaVector', VectorUDT())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |