• MLeap 问题诊断
    • Must provide a sample dataset for the X transformer
      • 解决代码

    MLeap 问题诊断

    Must provide a sample dataset for the X transformer

    你想要序列化的 Transformer 依赖于 Spark DataFrame 中的元数据,从而引发了这个错误。MLeap 需要访问这个元数据来保证 Transformer 能够被正确序列化,因此我们可以在 MLeap Bundle 中存储所有可能出现的值。这个方案需要提供一帧已经被 Spark ML Pipeline 成功转换的样例 DataFrame。

    解决代码

    1. // Use your Spark ML Pipeline to transform the Spark DataFrame
    2. val transformedDataset = sparkTransformer.transform(sparkDataset)
    3. // Create a custom SparkBundleContext and provide the transformed DataFrame
    4. implicit val sbc = SparkBundleContext().withDataset(transformedDataset)
    5. // Serialize the pipeline as you would normally
    6. (for(bf <- managed(BundleFile(file))) yield {
    7. sparkTransformer.writeBundle.save(bf).get
    8. }).tried.get