PySpark , поскольку версия 1.1 поддерживает Hadoop Input Formats . Вы можете использовать опцию textinputformat.record.delimiter
для использования разделителя пользовательского формата, как показано ниже
from operator import itemgetter
retrosheet = sc.newAPIHadoopFile(
'/path/to/retrosheet/file',
'org.apache.hadoop.mapreduce.lib.input.TextInputFormat',
'org.apache.hadoop.io.LongWritable',
'org.apache.hadoop.io.Text',
conf={'textinputformat.record.delimiter': '\nid,'}
)
(retrosheet
.filter(itemgetter(1))
.values()
.filter(lambda x: x)
.map(lambda v: (
v if v.startswith('id') else 'id,{0}'.format(v)).splitlines()))
Вы можете сделать это, вложив матрицу в таблицу.
Шаг 1. Создайте таблицу только с одной группой на странице_ид и установите ее на разрыв страницы.
Шаг 2: Создайте матрицу с row_id в группе строк, column_name в группе столбцов и столбце_значения на значениях
. Вы будете выглядеть как изображение ниже
Шаг 3 : Вставить матрицу внутри ячейки группы таблицы
Выполняя отчет, ваш результат будет выглядеть как изображения ниже