Я обрабатываю несколько таблиц данных, которые имеют более 20 миллионов строк с 30+ столбцами.В настоящее время я использую Python Pyspark, чтобы подсчитать нулевое значение и рассчитать пропускную способность.Но для проверки одного столбца требуется 40 минут.Если есть другой способ обработать его, чтобы он был быстрее, пожалуйста, дайте мне знать.Цените это.
Мой текущий код:
variables = ['A', 'B', ....]
for variable in variables:
column = pandas.read_sql_query('select %s from dbo.ORDERS' % (variable), con=cnxn)
column_missing = column.filter(column[variable].isnull()).count()
total = len(column)
missing = len(column_missing)
Отредактированный код:
import pyodbc
import pandas
import numpy
import datetime
import time
from pyspark.sql.functions import lit, col
order_pk = pandas.read_sql_query('select %s from dbo.ORDERS' % ('ORDER_PK'), con=cnxn)
summary = order_pk.describe().filter(col('ORDER_PK') == "count")
summary.select(*((lit(rows)-col(c)).alias(c) for c in order_pk.columns)).show()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-12-30285cf9f59e> in <module>()
----> 1 summary = order_pk.describe().filter(col('ORDER_PK') == "count")
2 summary.select(*((lit(rows)-col(c)).alias(c) for c in order_pk.columns)).show()
c:\users\pcui\appdata\local\programs\python\python37\lib\site-packages\pyspark\sql\functions.py in _(col)
40 def _(col):
41 sc = SparkContext._active_spark_context
---> 42 jc = getattr(sc._jvm.functions, name)(col._jc if isinstance(col, Column) else col)
43 return Column(jc)
44 _.__name__ = name
AttributeError: 'NoneType' object has no attribute '_jvm'