Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在spark/scala中跨多个节点传播部分代码_Scala_Hadoop_Apache Spark_Executors - Fatal编程技术网

在spark/scala中跨多个节点传播部分代码

在spark/scala中跨多个节点传播部分代码,scala,hadoop,apache-spark,executors,Scala,Hadoop,Apache Spark,Executors,我的文件大小约为10GB。 我需要提取数据并将其插入多个配置单元表中 我能够在单个节点中使用一些准备/映射函数来完成 样本数据: Dept : HR Emp name is Andrew lives in Colorodo DOB : 03/09/1958 Project name : Healthcare DOJ : 06/04/2011 DOL : 09/21/2011 Project name : Retail DOJ : 11/04/2011 DOL : 08/21/2013 Proje

我的文件大小约为10GB。 我需要提取数据并将其插入多个配置单元表中

我能够在单个节点中使用一些准备/映射函数来完成

样本数据:

Dept : HR
Emp name is Andrew lives in Colorodo
DOB : 03/09/1958
Project name : Healthcare
DOJ : 06/04/2011
DOL : 09/21/2011
Project name : Retail
DOJ : 11/04/2011
DOL : 08/21/2013
Project name : Audit
DOJ : 09/11/2013
DOL : 09/01/2014
Project name : ContorlManagement
DOJ : 01/08/2015
DOL : 02/14/2016
Emp name is Alex lives in Texas
DOB : 03/09/1958
Project name : Healthcare
DOJ : 06/04/2011
DOL : 09/21/2011
Project name : ContorlManagement
DOJ : 01/08/2015
DOL : 02/14/2016
Emp name is Mathew lives in California
DOB : 03/09/1958
Project name : Healthcare
DOJ : 06/04/2011
DOL : 09/21/2011
Project name : Retail
DOJ : 11/04/2011
DOL : 08/21/2013
Project name : Audit
DOJ : 09/11/2013
DOL : 09/01/2014
Project name : ContorlManagement
DOJ : 01/08/2015
DOL : 02/14/2016

Dept : QC
Emp name is Nguyen lives in Nevada
DOB : 03/09/1958
Project name : Healthcare
DOJ : 06/04/2011
DOL : 09/21/2011
Project name : Retail
DOJ : 11/04/2011
DOL : 08/21/2013
Project name : Audit
DOJ : 09/11/2013
DOL : 09/01/2014
Project name : ContorlManagement
DOJ : 01/08/2015
DOL : 02/14/2016
Emp name is Cassey lives in Newyork
DOB : 03/09/1958
Project name : Healthcare
DOJ : 06/04/2011
DOL : 09/21/2011
Project name : ContorlManagement
DOJ : 01/08/2015
DOL : 02/14/2016
Emp name is Ronney lives in Alasca
DOB : 03/09/1958
Project name : Audit
DOJ : 09/11/2013
DOL : 09/01/2014
Project name : ContorlManagement
DOJ : 01/08/2015
DOL : 02/14/2016
这是我的密码:

val inp =  sc.textFile("F:\\Softwares\\Spark\\Programs for td\\input\\sample.txt").collect().mkString(" ").replaceAll("""[\r\n]+""", " ")
     val pt1 = """(?s)Dept : .*?(?=\bDept : |$)""".r
     val pt2 = """(?s)Emp name : .*?(?=\bEmp name : |$)""".r
     val dname = """Dept : (\S+).*?""".r
     val emprec = """Emp name : (\S+) lives in (\S+) DOB : (\S+).*?""".r
     val prrec = """Project name : (\S+) DOJ : (\S+) DOL : (\S+) """.r
     var recs = pt1.findAllIn(inp)
     var rec1 = recs
在此rec1(Regex.MatchIterator)之后,数据如下所示:

Dept : HR Emp name : Andrew lives in Colorodo DOB : 03/09/1958 Project name :Healthcare DOJ : 06/04/2011 DOL : 09/21/2011 Project name : Retail DOJ : 11/04/2011 DOL : 08/21/2013 Project name : Audit DOJ : 09/11/2013 DOL : 09/01/2014 Project name : ContorlManagement DOJ : 01/08/2015 DOL : 02/14/2016 Emp name : Alex lives in Texas DOB : 03/09/1958 Project name : Healthcare DOJ : 06/04/2011 DOL : 09/21/2011 Project name : ContorlManagement DOJ : 01/08/2015 DOL : 02/14/2016 Emp name : Mathew lives in California DOB : 03/09/1958 Project name : Healthcare DOJ : 06/04/2011 DOL : 09/21/2011 Project name : Retail DOJ : 11/04/2011 DOL : 08/21/2013 Project name : Audit DOJ : 09/11/2013 DOL : 09/01/2014 Project name : ContorlManagement DOJ : 01/08/2015 DOL : 02/14/2016  



Dept : QC Emp name : Nguyen lives in Nevada DOB : 03/09/1958 Project name : Healthcare DOJ : 06/04/2011 DOL : 09/21/2011 Project name : Retail DOJ : 11/04/2011 DOL : 08/21/2013 Project name : Audit DOJ : 09/11/2013 DOL : 09/01/2014 Project name : ContorlManagement DOJ : 01/08/2015 DOL : 02/14/2016 Emp name : Cassey lives in Newyork DOB : 03/09/1958 Project name : Healthcare DOJ : 06/04/2011 DOL : 09/21/2011 Project name : ContorlManagement DOJ : 01/08/2015 DOL : 02/14/2016 Emp name : Ronney lives in Alasca DOB : 03/09/1958 Project name : Audit DOJ : 09/11/2013 DOL : 09/01/2014 Project name : ContorlManagement DOJ : 01/08/2015 DOL : 02/14/2016
i、 e每个部门数据成为其自己的行。 有时它可能在300k-400k行之间变化。 下面是对其进行格式化并将其转换为数据帧的代码的下一部分。(我还没有编写将此Df插入到hive的代码。但我认为,我可以在本pgm的底部编写此代码。)


1) 我如何将代码的第二部分传播到多个executors节点&同时数据也应该相等地分割以得到执行。就像我有4个节点集群一样&每个节点应该有10万行,并且单独执行第二次rtion代码。但是最后,所有的数据都应该放在一个配置单元表中。

如果你能做
sc.textFile(…).collect()。
来预处理数据,为什么还要使用spark呢?我将在这里尽力解释我的情况。如果您需要任何具体信息,请告诉我。我的每台机器都使用32gb内存。所以我可以在一台机器中处理所有数据(~10GB)。但这需要更多的时间。同时,我需要预处理我的文件。这就是我过去收集的原因。一旦对其进行了预处理,我将尝试将它们分布在节点上并对其进行处理。这样它就可以做平行执行。看看我对你的另一个问题的回答。将Spark用于此案例似乎不太合适。使用另一种方法创建spark友好的输入(如csv),然后将其加载到spark中进行进一步处理(sql、hive等)。好的。谢谢你。我也会试试这个选择。谢谢。如果您可以使用
sc.textFile(…).collect().
来预处理数据,为什么还要使用spark?我将在这里尽力解释我的情况。如果您需要任何具体信息,请告诉我。我的每台机器都使用32gb内存。所以我可以在一台机器中处理所有数据(~10GB)。但这需要更多的时间。同时,我需要预处理我的文件。这就是我过去收集的原因。一旦对其进行了预处理,我将尝试将它们分布在节点上并对其进行处理。这样它就可以做平行执行。看看我对你的另一个问题的回答。将Spark用于此案例似乎不太合适。使用另一种方法创建spark友好的输入(如csv),然后将其加载到spark中进行进一步处理(sql、hive等)。好的。谢谢你。我也会试试这个选择。谢谢
   var recfinal =  recs.map
      {
        e=>
 //  println(e)
      var dname(d) = e
   //    println(d)
      var rec2= pt2.findAllIn(e)

        var rec5 =rec2.map { k =>
    //   println(k)
                var emprec(ename,est,edob) = k
     //     println(ename,est,edob)
                var rec3 = prrec.findAllIn(k) 

               var rec4 =  rec3.map { j =>
                            var prrec(prjname,doj,dol) = j
                            var reclist = (d,ename,est,edob,prjname,doj,dol)
                             reclist
                           }
                .toList
                rec4
                  }
       .toList
       rec5

      }
    .flatMap(identity)
   .flatMap(identity)
  val rec9= recfinal.toSeq.toDF("dname","en","st","db","prj","dj","dl")
  rec9.show