微软在5月发布了.net for spark版本,让.net大军可以加入大数据分析阵容。由于资料是少之又少,百度了下,基本上没有,也是从零开始,只能自己瞎倒腾,所以自己留下点笔记吧。
HelloSpark。
安装运行环境很简单,百度官网,按照步骤安装即可。
https://docs.microsoft.com/zh-cn/dotnet/spark/tutorials/get-started
新建项目.net core,NuGet安装micrsoft.spark包。然后引用一下Microsoft.Spark.Sql;
按照官网示例新建一个APP;
SparkSession spark = SparkSession.Builder().AppName("xfj_xfr").GetOrCreate();
下面就是导入文件了,分别使用text和CSV尝试下,然后翻了下视频教程,学着样子写了几句。
DataFrame xfjdf = spark.Read()
.Option("Delimiter", "|")
.Option("Encoding", "UTF-8")
.Schema("xfjbh STRING,djsj STRING,djjgmc STRING,gkxx STRING,cfxfbz INT")
.Csv("xfj.csv");
默认的csv用的是逗号分隔符,所以添加配置改下分隔符为“|”,然后在改变下读取编码,但是一直不成功,中文一直是乱码,所以很惆怅到底是哪里出了问题,至今还是没解决。然后就是csv文件里面的列以及类型了,最后是csv文件的路径。
在添加一个文件试验下关联。
DataFrame xfrdf = spark.Read()
.Option("Delimiter", "|")
.Option("Encoding", "UTF-8")
.Schema("xfjbh STRING,xm STRING,sfzhm STRING,zz STRING,xb INT")
.Csv("xfr.csv");
好了,导入两个文件后,开始写方法,由于自己瞎倒腾,不知道怎么用,照着视频写写看。
DataFrame xfr_xfj = xfrdf.Join(xfjdf, "xfjbh");//关联两张表用"xfjbh"
xfjdf.Show();//打印原始df
xfrdf.Show();//打印原始df
xfr_xfj.Show();//打印关联后的df
xfr_xfj.Filter("xfjbh='20191210134612347'").Show();//过滤xfjbh
xfr_xfj.OrderBy(Functions.Col("xfjbh")).Show();//排序
foreach (var item in xfr_xfj.Collect())//遍历df
{
Console.WriteLine( item[0].ToString());
}
编译运行 查看结果:
xfjdf
xfrdf
xfr_xfjdf
过滤后的df
排序过后的df
遍历df结果
好了,下面继续研究倒腾