如何在超空间(spark)中运行createindex函数

yuvru6vn  于 2021-05-24  发布在  Spark
关注(0)|答案(1)|浏览(521)

我正在尝试使用pyspark中的超空间创建索引。但我得到了这个错误

  1. sample_data = [(1, "name1"), (2, "name2")]
  2. spark.createDataFrame(sample_data, ['id','name']).write.mode("overwrite").parquet("table")
  3. df = spark.read.parquet("table")
  4. from hyperspace import *
  5. # Create an instance of Hyperspace
  6. hyperspace = Hyperspace(spark)
  7. hs.createIndex(df, IndexConfig("index", ["id"], ["name"]))

java.lang.classcastexception:org.apache.spark.sql.execution.datasources.serializablefilestatus不能强制转换为org.apache.hadoop.fs.filestatus
我运行在azure databricks环境-spark 3.0.0 scala 2.12上
当我尝试在spark 2.4.2 scala 2.12或scala 2.11上执行相同的操作时,我在同一个函数(createindex)中得到错误,这里我得到以下错误-
.py4jjavaerror:调用none.com.microsoft.hyperspace.index.indexconfig时出错:java.lang.noclassdeffounderror:
有人能提出一些解决办法吗。

ef1yzkbh

ef1yzkbh1#

根据https://github.com/microsoft/hyperspace/discussions/285,这是databricks运行时的一个已知问题。
如果您使用开源spark,它应该可以工作。
与databricks团队寻求解决方案。

相关问题