我在Spark中有一个数据框(通过读取csv创建),我如何在c#中循环遍历该数据框中的行。数据框中有10行和3列,我想获得每个列的值,因为我逐个浏览行。下面是我正在尝试的:
foreach (var obj in df)
{
Console.WriteLine("test");
}
foreach语句不能操作'DataFrame'类型的变量,因为'DataFrame'不包含'GetEnumerator'的公共实例定义
DataFrame
是对spark集群实际数据的引用。如果您希望看到实际的数据(与运行一些转换并写入输出相反,这是典型的用例),您需要将数据收集到您的应用程序中。
https://learn.microsoft.com/en-us/dotnet/api/microsoft.spark.sql.dataframe.collect?view=spark-dotnet
foreach (var obj in df.Collect())
{
Console.WriteLine("test");
}
这将给你一个可枚举的Row
,其中Values
是一个实际值的对象数组。
如果你只是想查看调试的内容,那么你可以这样做:
df.Show();
Show
有两个参数,第一个是行数,第二个是在数据被截断并且需要查看所有列的情况下显示多少字符宽度:
df.Show(100, 10000);