У меня была эта проблема и я нашел этот пост. Моя проблема была просто проблемой с именем файла.
FXMLLoader(getClass().getResource("/com/companyname/reports/" +
report.getClass().getCanonicalName().substring(18).replaceAll("Controller", "") +
".fxml"));
Parent root = (Parent) loader.load();
У меня есть xml, из которого все это происходит, и я убедился, что мой класс такой же, как файл fxml, меньше словаря.
Я испортил подстроку, поэтому путь был неправильным ... достаточно уверен, после того как я исправил имя файла, с которым он работал.
Короче говоря, я думаю, что Проблема в том, что имя файла названо неправильно или путь неправильный.
ДОПОЛНЕНИЕ: С тех пор я перешел в проект Maven. Способ не Maven заключается в том, чтобы иметь все внутри вашего пути к проекту. Способ Maven, который был указан в нижеприведенном ответе, был немного разочаровывающим с самого начала, но я внес изменения в свой код следующим образом:
FXMLLoader loader = new FXMLLoader(ReportMenu.this.getClass().getResource("/fxml/" + report.getClass().getCanonicalName().substring(18).replaceAll("Controller", "") + ".fxml"));
В настоящее время вы присоединяетесь к своим фреймам данных следующим образом:
(((td1 + td2) + td3) + td4)
На каждом этапе вы объединяете огромный фрейм данных с небольшим фреймом данных, что приводит к копированию на каждом шаге и большому расходу памяти. Я бы предложил объединить их так:
(td1 + td2) + (td3 + td4)
Идея состоит в том, чтобы итеративно объединять пары примерно одинакового размера, пока не останется один результат. Вот прототип:
def pairwise_reduce(op, x):
while len(x) > 1:
v = [op(i, j) for i, j in zip(x[::2], x[1::2])]
if len(x) > 1 and len(x) % 2 == 1:
v[-1] = op(v[-1], x[-1])
x = v
return x[0]
result = pairwise_reduce(DataFrame.unionAll, df_list)
Вы увидите, как это имеет огромное значение для списков Python.
from functools import reduce
from operator import add
x = [[1, 2, 3], [4, 5, 6], [7, 8], [9, 10, 11, 12]] * 1000
%timeit sum(x, [])
%timeit reduce(add, x)
%timeit pairwise_reduce(add, x)
64.2 ms ± 606 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
66.3 ms ± 679 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
970 µs ± 9.02 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
sum(x, []) == reduce(add, x) == pairwise_reduce(add, x)
# True