Microsoft.Spark 中 Take 方法的方法未实现异常

Posted

技术标签:

【中文标题】Microsoft.Spark 中 Take 方法的方法未实现异常【英文标题】:Method not implemented exception on Take method in Microsoft.Spark 【发布时间】:2019-05-10 07:33:13 【问题描述】:

我正在尝试使用新的 Microsoft.Spark 库设置 spark。 DataFrame.PrintSchema 方法工作正常,但是 DataFrame.Take() 方法给出了 System.NotImplementedException。 Allot 的其他方法也给出了这个例外。

我查看了源代码,发现“Take”方法调用了 collect 方法,但在调用 collectToPython 时失败。

SparkSession spark = SparkSession
    .Builder()
    .AppName(".NET Spark")
    .GetOrCreate();

DataFrame dataFrame = spark.Read().Json("people.json");
IEnumerable<Row> rows =  dataFrame.Take(1);

这只是一个尚未完成的 Microsoft 库吗?还是我做错了什么?

【问题讨论】:

Take 是集合的扩展方法,仅当您添加 System.Linq 作为对项目的引用时,您才能使用它。 @Jan-Wiebe 这能解决问题吗? 【参考方案1】:

您尝试过最新发布的版本吗?我使用了 v0.2.0,以下工作正常:

var spark = SparkSession.Builder().GetOrCreate();
var df = spark.Read().Json("people.json");

IEnumerable<Row> rows = df.Take(1);
foreach (var row in rows)

    Console.WriteLine(row.Get("name"));

spark.Stop();

【讨论】:

以上是关于Microsoft.Spark 中 Take 方法的方法未实现异常的主要内容,如果未能解决你的问题,请参考以下文章

RDD take()方法如何在内部工作?

当我在 Windows 7 中运行“first”或“take”方法时 pyspark 崩溃

如何使用 Take 和 Skip 方法从数据库表中获取所有条目?

Linq 下的 Take() 方法内部机制是怎样的?

NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分页获取数据失败

提供Kotlin阵列的补偿 .take(n:Int)。这是分页的好方法吗?