Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. from pyspark import SparkConf, SparkContext
  2. from pyspark.sql import SQLContext
  3. from pyspark.sql.functions import *
  4. import csv, io
  5. import datetime
  6. conf = SparkConf().setMaster("local[8]").setAppName("myapp")
  7. sc = SparkContext(conf = conf)
  8. sqlctx = SQLContext(sc)
  9. DoneLot="(SELECT *
  10. FROM [DBTable] where somefield=0) AS Done"
  11.  
  12. NotDoneLot= "(SELECT *
  13. FROM [DBTable] Where somefield<>0) AS NotDoneLot"
  14.  
  15. DoneLot = sqlctx.read.format("jdbc").options(
  16. url="jdbc:sqlserver://localhost:1433;databaseName=TESTNAV;user=sa;password=sa@123",
  17. dbtable=DoneLot,driver="com.microsoft.sqlserver.jdbc.SQLServerDriver").load()
  18.  
  19. DoneLot.registerTempTable("DoneLot")
  20.  
  21. NotDoneLot = sqlctx.read.format("jdbc").options(
  22. url="jdbc:sqlserver://localhost:1433;databaseName=TESTNAV;user=sa;password=sa@123",
  23. dbtable=NotDoneLot,driver="com.microsoft.sqlserver.jdbc.SQLServerDriver").load()
  24.  
  25. NotDoneLot.registerTempTable("NotDoneLot")
  26.  
  27. vRows=1
  28. vLot=2
  29. vTrnType='Out'
  30.  
  31. while vRows<4:
  32. vPrevLot=vLot-1
  33.  
  34. if vTrnType=='In':
  35. Temp = sqlctx.sql("SELECT *
  36. Case When Quantity<0 Then 'NA' Else
  37. Case When field1<>0 Then field2 Else field3 End End AS Link_In
  38. From NotDoneLot")
  39.  
  40. Ref = sqlctx.sql("SELECT distinct `RefNo`,
  41. Case When field1<>0 Then field4 Else field6 End AS Link_In
  42. From DoneLot")
  43.  
  44. Refjoin=[Temp.Link_In == Ref.Link_In]
  45. Temp= Temp.join(Ref,Refjoin,'left')
  46.  
  47. Temp.registerTempTable("NotDoneLot")
  48.  
  49. NewMapped=sqlctx.sql("SELECT *,
  50. %d"%vLot+" AS LotNo,
  51. 'Mapped' AS RefFlag
  52. From NotDoneLot WHERE Not ISNULL(RefNo)")
  53.  
  54. else:
  55. Temp = sqlctx.sql("SELECT *,
  56. Case When Quantity<0 Then field6 Else 'NA' End AS Link_Out
  57. From NotDoneLot")
  58. Ref = sqlctx.sql("SELECT distinct `RefNo`,
  59. field7 AS Link_Out
  60. From DoneLot")
  61. Refjoin=[Temp.Link_Out == Ref.Link_Out]
  62. Temp= Temp.join(Ref,Refjoin,'left')
  63.  
  64. Temp.registerTempTable("NotDoneLot")
  65. NewMapped=sqlctx.sql("SELECT *,
  66. %d"%vLot+" AS LotNo,
  67. 'Mapped' AS RefFlag
  68. From NotDoneLot WHERE Not ISNULL(RefNo)")
  69.  
  70. NewMapped.registerTempTable("DoneLot")
  71. DoneLot=DoneLot.unionAll(NewMapped)
  72.  
  73. NotDoneLot=sqlctx.sql("SELECT *
  74. From NotDoneLot WHERE ISNULL(RefNo)")
  75.  
  76. NotDoneLot.registerTempTable("NotDoneLot")
  77. vRows=vRows+1
  78. vLot=vLot+1
  79.  
  80. if vTrnType=='In':
  81. vTrnType='Out'
  82. else:
  83. vTrnType='In'
  84.  
  85. DoneLot.write.jdbc(url="jdbc:sqlserver://localhost:1433;databaseName=ConfiguratorNew;user=sa;password=sa@123",
  86. table="DoneLot", mode="overwrite")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement